正则表达式---捕获与位置指定(四)

捕获:

1:(?exp)  : 匹配exp,然后将捕获的内容放到命名为name的组里

2:(?:exp)              : 匹配exp,但是不捕获匹配的内容到组里

位置指定(零宽断言):

3:(?=exp)             : 匹配exp前面的位置

4:(?<=exp)           : 匹配exp后面的位置

5:(?!exp)              : 匹配后面不是跟的exp的位置

6:(?位置

示例:

1:exp为hello world , I am the strongest man in the world.,正则为(?world)

结果:正则表达式---捕获与位置指定(四)_第1张图片

2: exp为hello world , I am the strongest man in the world.,正则为(?:world)\1

结果:\1 This token references a non-existent or invalid subpattern。因为设定为world为非捕获组那么\1就是不存在的

3: exp为hello world , I am the strongest man in the world.,要求匹配到每个world里面的wo这两个字符,正则为\b\w+(?=rld)

结果:正则表达式---捕获与位置指定(四)_第2张图片

4: 

exp:

ABCDE158-289w63012_12
ABCDE158-28963012
AKCDE158-28963012_1
NBCDE158-28963012,

要求:只匹配以ABCDE开头的后面的数字,其中不能包括_及其后面的数字

结果:正则表达式---捕获与位置指定(四)_第3张图片

5: 

exp:

ABCDE158-289w63012_12
ABCDE158-28963012
AKCDE158-28963012_1
NBCDE158-28963012,

要求:只匹配三个数字,且三个数字后面不能是数字

正则:\d{3}(?!\d)

结果:正则表达式---捕获与位置指定(四)_第4张图片

6: 

exp:

ABCDE158-289w63012_12
ABCDE158-28963012
AKCDE158-28963012_1
NBCDE158-28963012,

要求:找出匹配前面不是158的位置

正则:(?

结果:正则表达式---捕获与位置指定(四)_第5张图片

 看了这以上几个例子,其实应该还算比较模糊,那么接下来将会谈到更多的零宽断言

你可能感兴趣的:(正则表达式)