[pattern]
和(pattern)
之间有什么区别?我无法在谷歌上找到它,因为它不允许输入这些符号。感谢。
答案 0 :(得分:11)
()
用于组(通常用于捕获,更改等),而[]
用于 set 字符(或一个)确切地说是“人物类”的形式。
因此(abc)
的模式将与整个字符串"abc"
匹配,而[abc]
将匹配a
中的任何单个字符,{{ 1}}或b
。
虽然正则表达式有特定于平台的方面,但这种差异非常标准 - 因此任何正则表达式教程都应该涵盖它。
答案 1 :(得分:1)
[]
中的任何内容只匹配一个字符。因此,您可以编写[aeiou]
以匹配任何小写元音,或[a-m]
以匹配字母表前半部分中的任何字母。因为它只是一个字符,如果您想要多个字符,则可能需要将其与+
或*
结合使用。例如,
f[aeiou]t
匹配fat
但不匹配feet
,而f[aeiou]*t
匹配fat
,foot
,feet
甚至{{} 1}}。
另一方面,ft
中的某些内容匹配没有括号的字符数。如果要使用正则表达式的某些部分进行操作,可以使用()
。例如,()
匹配ba(na)*
和ba
甚至banana
,因为banananana
(意味着紧接其之前的任何事件的发生次数)总的来说*
。此外,如果您要基于正则表达式进行替换,在那里用新字符串替换匹配的某些部分,na
可用于分隔将被替换的内容 - 例如,您可能会替换字符串中与第4个带括号的表达式匹配的任何部分。