1

我曾经将以下正则表达式示例读为

average\(([^\)]*)\)

这代表什么?或者换句话说,如何理解这个正则表达式结构?

4

3 回答 3

0

[^)] 表示除 ) 以外的任何字符

字符 * 表示最终重复

() 匹配自己

\(...\) 标识稍后要访问的表达式的一部分

于 2013-02-18T20:53:59.930 回答
0

您的正则表达式匹配:

average(what%ever&is&not_containingAAAAAAAAAclosingParenthese)

此外,非转义括号通常描述一个group,它是您可能想要提取的正则表达式的一部分。

如果您有以下文字

This boy entered a pub and average(Hello I'm the group) ordered a beer. 

您的正则表达式将匹配

average(Hello I'm the group)

部分。一旦匹配,您可以提取

Hello I'm the group

因为你是正则表达式定义了一个组:

([^\)]*)

解释:

( ) [ ] * ^ 是关于正则表达式的特殊字符,但您可以使用反斜杠 \ 将它们转义以将它们用作字符本身。

[^)] :匹配任何不是右括号的字符的字符类。[^)]* :匹配来自此类的未定义数量 (0..n) 的字符。

希望对你有帮助,不知道够不够清楚。

于 2013-02-18T20:55:24.560 回答
0

有一些网站是理解和学习正则表达式的绝佳资源。只需粘贴您的正则表达式并给出解释。

我最喜欢的是regexper.com

在此处输入图像描述

还有regex101.com,它为您逐个解释正在发生的事情,并在底部提供方便的参考:

在此处输入图像描述

于 2013-02-18T21:57:29.820 回答