[]和()之间的正则表达式差异

时间:2015-06-18 09:02:33

标签: php design-patterns expression

如何理解这种模式?

/^((?:\+?61)|0)(2((3[3789])|(4[0123456789])|(5[012356789])|
(6[0123456789])|[789][0-9])|(3((3[234])|(4[012345789])|(5[0123456789])|
(6[123457])|[789][0-9]))|(7(([23][0-9]|(4[0123456789]))|(5[234567])|
(7[679])))|(8((2[56])|(5[123458])|(6[0123456789])|(7[0123456789])|
(8[0123456789])|(9[0123456789]))))[0-9]{6}$/

square bracket[]Parenthesis()的不同之处是什么?

1 个答案:

答案 0 :(得分:0)

[]表示一个字符类。 ()表示捕获组。

[a-z0-9] - 一个字符,其范围为a-z0-9

(a-z0-9) - 明确捕获a-z0-9。没有范围。

a - 可以[a-z0-9]抓取。

a-z0-9 - 可以被(a-z0-9)捕获,然后可以在替换中和/或稍后的表达式中引用。