后向引用用于重复搜索前面某个分组匹配的文本。例如,1代表分组1匹配的文本。难以理解?请看示例:
b(w )bs 1b可以用来匹配重复的单词,像go go, kitty kitty。首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(b(w )b),然后是1个或几个空白符(s ,最后是前面匹配的那个单词(1)。
你也可以自己指定子表达式的组号或组名。要指定一个子表达式的组名,请使用这样的语法:(?<Word>w ),这样就把w 的组名指定为Word了。要反向引用这个分组捕捉的内容,你可以使用k<Word>,所以上一个例子也可以写成这样:b(?<Word>w )bs*k<Word>b。
使用小括号的时候,还有很多特定用途的语法。下面列出了最常用的一些:
| 捕捉 | |||
|---|---|---|---|
| (exp) | 匹配exp,并捕捉文本到自动命名的组里 | ||
| (?<name>exp) | 匹配exp,并捕捉文本到名称为name的组里,也可以写成(?'name'exp) | ||
| (?:exp) | 匹配exp,不捕捉匹配的文本 | ||
| 位置指定 | |||
| (?=exp) | 匹配exp前面的位置 | ||
| (?<=exp) | 匹配exp后面的位置 | ||
| (?!exp) | 匹配后面跟的不是exp的位置 | ||
| (?<!exp) | 匹配前面不是exp的位置 | ||
| 注释 | |||
| (?#comment) | 这种类型的组不对正则表达式的处理产生任何影响,只是为了提供让人阅读注释 | ||
| 共13页: 上一页 [1] [2] [3] [4] [5] [6] [7] 8 [9] [10] [11] [12] [13] 下一页 | |||
![]() |