正規表示式 捕獲與位置指定 四

2021-09-12 01:12:54 字數 1541 閱讀 4553

捕獲:

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)

結果:

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)

結果:

4: exp:

abcde158-289w63012_12

abcde158-28963012

akcde158-28963012_1

nbcde158-28963012,

要求:只匹配以abcde開頭的後面的數字,其中不能包括_及其後面的數字

結果:

5: exp:

abcde158-289w63012_12

abcde158-28963012

akcde158-28963012_1

nbcde158-28963012,

要求:只匹配三個數字,且三個數字後面不能是數字

正則:\d(?!\d)

結果:

6: exp:

abcde158-289w63012_12

abcde158-28963012

akcde158-28963012_1

nbcde158-28963012,

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

正則:(?結果:

看了這以上幾個例子,其實應該還算比較模糊,那麼接下來將會談到更多的零寬斷言

正規表示式 分組與捕獲

之前使用正規表示式的時候大多數狀況下只是用用匹配表示式,為什麼說是匹配表示式呢,因為其實替換文字也可以使用表示式,我稱之為替換表示式。因為通常使用正規表示式的大多會是以下情況,比如把一段文字中的a字串更改為b字串 待匹配文字 abcdabcd 匹配表示式 b 替換文字 e 替換結果 aecdaecd...

正規表示式 分組與捕獲

之前使用正規表示式的時候大多數狀況下只是用用匹配表示式,為什麼說是匹配表示式呢,因為其實替換文字也可以使用表示式,我稱之為替換表示式。因為通常使用正規表示式的大多會是以下情況,比如把一段文字中的a字串更改為b字串 待匹配文字 abcdabcd 匹配表示式 b 替換文字 e 替換結果 aecdaecd...

正規表示式 分組與捕獲

之前使用正規表示式的時候大多數狀況下只是用用匹配表示式,為什麼說是匹配表示式呢,因為其實替換文字也可以使用表示式,我稱之為替換表示式。因為通常使用正規表示式的大多會是以下情況,比如把一段文字中的a字串更改為b字串 待匹配文字 abcdabcd 匹配表示式 b 替換文字 e 替換結果 aecdaecd...