[Regular] 2、正则表达式基础元字符及分组、捕获
????? 分組、捕獲、分組不捕獲
????? 普通的無特殊意義的括號通常有兩種功能:分組和捕獲。
????? 捕獲型括號的編號是按照括號出現的次序,從左到右計算的。如果提供反向引用,可以在表達式的后面用\1,\2來引用匹配的文本。如:(a)(b)可以用\1引用(a),\2引用(b).
僅用于分組的括號(?:…)
僅用于分組的括號(?:…) 不能用來提取文本,只能用來規定多選結構或者量詞的作用對象。如 (1|one)(?:and|or)(2|two) 匹配之后,\1包含“1”或者“one”,\2q包含“2”或者“two”。只用于分組的括號也叫非捕獲型括號.
命名捕獲 (?<Name>)
.Net引擎能夠能捕獲內容命名。如果在正則表達式內部引用捕獲的文,.Net中使用\k<Name>. 如 (?<Name>a)[a-z]+\k<Name> 來匹配abeena.
固化分組 (?>…)
如 果了解了正則引擎的匹配原理,就很容易理解固化分組。固化分組一旦括號內的子表達式匹配之后,匹配的內容就固定下來,在接下來的匹配過程中不會變化,除非 整個固化分組的括號都被棄用,在外部回溯中重新應用。固化分組能夠提高匹配效率,而且自己能對什么能匹配,什么不能匹配進行準確地控制。?
匹配優先量詞 *? +? ?? {min, max}
?匹配優先量詞在優先匹配盡量多的字符。
忽略優先量詞 *?? +?? ??? {min, max}?
忽略優先量詞與匹配優先量詞正好相反,匹配盡可能少的內容。
占有優先量詞 *+? ++? ?+? {min, max}+
占有優先量詞類似普通的匹配優先量詞,不過他們一旦匹配某些內容,就不會“交還”。類似固化分組。
常用元字符
在字符組的內部,元字符的定義規則是不一樣的。例號.點號在外部表示任意一下字符,但在字符組內只是表示一個.點號。
總結
以上是生活随笔為你收集整理的[Regular] 2、正则表达式基础元字符及分组、捕获的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用IPSec加强系统安全性
- 下一篇: dasblog的安装