1.圆括号有什么用?
正则表达式中的圆括号有两种功能:一是表示分组;二是表示可选择性。
2.使用圆括号分组
园括号定义了一个组,这个组模式匹配的内容会被捕获并指定给变量,变量的编号会按照模式中圆括号出现的次序依次进行。
A22 33
\w\d{2})))\d{2})))
在Komodo Regular Expression Toolkit中
Group Match Variables
Variable Value
$1 A22 33
$2 A22
$3 22
$4 33
$5
$6 33
3.可选择性
根据可以选择的情况建立支持二选一或多选一的应用,涉及到使用圆括号和|元字符(有时候称为吧(bar)字符)——后者用于表示逻辑或的意思。
gray|grey)或者gra|e)y 也可用字符类,gr[ea]y 使用字符类来代替选择通常会提高匹配效率
Doctor|Dr|Dr\.) Doctor|Dr\.?)
不平衡的交替选择 a|ab) 修改为 ab|a)
4.非捕获的圆括号
?:the-non-captured-content) 当在圆括号后面放置一个问号和一个冒号是,相应的这对圆括号就不会再捕获内容了。
减少要处理的组数,利于编程
Doctor Firstname LastName
Dr Firstname LastName
Dr. Firstname LastName
Doctor|Dr|Dr.)\s\w{1,}\s)\w{1,}) 改为 Doctor|Dr|Dr.)?:\s\w{1,}\s)\w{1,})
5.反向引用 back references backreferences
检测重复单词 \<[A-Za-z]) +\1\>