我曾经将以下正则表达式示例读为
average\(([^\)]*)\)
这代表什么?或者换句话说,如何理解这个正则表达式结构?
[^)] 表示除 ) 以外的任何字符
字符 * 表示最终重复
() 匹配自己
\(...\) 标识稍后要访问的表达式的一部分
您的正则表达式匹配:
average(what%ever&is¬_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) 的字符。
希望对你有帮助,不知道够不够清楚。
有一些网站是理解和学习正则表达式的绝佳资源。只需粘贴您的正则表达式并给出解释。
我最喜欢的是regexper.com:
还有regex101.com,它为您逐个解释正在发生的事情,并在底部提供方便的参考: