在() ()(括号)中封装正则表达式的一部分与在square brackets中封装正则表达式有什么区别?
如何做到这一点:
[a-z0-9]与此不同:
(a-z0-9)发布于 2010-09-25 01:16:00
[]表示一个字符类。()表示捕获组。
[a-z0-9] --一个在a-z或0-9范围内的字符
(a-z0-9) --显式捕获a-z0-9。没有范围。
a --可以被[a-z0-9]捕获。
a-z0-9 --可以由(a-z0-9)捕获,然后可以在替换和/或以后的表达式中引用。
发布于 2010-09-25 01:14:14
(…)是一个对内容进行分组的group,就像在数学中一样;(a-z0-9)是a-z0-9的分组序列。组尤其与允许将前面的表达式作为一个整体重复的quantifiers一起使用:a*b*匹配任何数量的a,后跟任何数量的b,例如a、aaab、bbbbb等;相反,(ab)*匹配任何数量的ab,例如D13、D14等。
[…]是一个描述单个字符选项的character class;[a-z0-9]描述一个范围为a-z或0-9的单个字符。
发布于 2010-09-25 01:15:29
正则表达式中的[]结构本质上是对所有内容的|的简写。例如,[abc]匹配a、b或c。此外,-字符在[]中具有特殊含义。它提供了一个范围结构。正则表达式[a-z]将匹配任何字母a到z。
()构造是一个建立优先顺序的分组构造(它对访问匹配的子字符串也有影响,但这是一个更高级的主题)。正则表达式(abc)将匹配字符串"abc“。
https://stackoverflow.com/questions/3789417
复制相似问题