正則表達(dá)式-零寬斷言

代碼 功能
(?=exp) 匹配后面是exp的位置
(?<=exp) 匹配前面是exp的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置

零寬

零寬說的是這個(gè)表達(dá)式不匹配任何字符,只匹配一個(gè)位置

斷言

我要匹配的字符串一定要滿足這個(gè)條件

一下采用python的re模塊舉幾個(gè)例子幫助理解

(?=exp)

text = '1taylor2 3swift4'
s = re.findall(r'[a-z]+(?=3)', text)
print(s)
------
['taylor']

大白話: 我要匹配這樣的字符串,它由小寫字母構(gòu)成,并且他后面跟著一個(gè)3

(?<=exp)

text = '1taylor swift2'
s = re.findall(r'(?<=\b)[a-z]+', text)
print(s)
------
['swift']

匹配前面為\b 的小寫英文單詞

(?!exp)

text = 'I dont give a shit.'
s = re.findall(r'\w+(?!\.)', text)
print(s)
------
['I', 'dont', 'give', 'a', 'shi']

匹配的字符串后面不能有.

(?<!exp)

text = 'dragon1 dragon2'
s = re.findall(r'(?<!\s)\w+', text)
print(s)
------
['dragon1', 'ragon2']

匹配前面不是空白符的單詞


Reference:deerchao

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 捕獲### (exp):匹配并且捕獲exp表達(dá)式的內(nèi)容,捕獲內(nèi)容存檔在全局變量$1-$99里面。(?<name>e...
    YongpingZhao閱讀 404評論 0 0
  • 在使用正則表達(dá)式時(shí),有時(shí)我們需要捕獲的內(nèi)容前后必須是特定內(nèi)容,但又不捕獲這些特定內(nèi)容的時(shí)候,零寬斷言就起到作用了。...
    SecondRocker閱讀 5,257評論 0 5
  • 注:本篇文章只為方便查看,特此保留,如有冒犯,敬請諒解?。?! 本文目標(biāo) 30分鐘內(nèi)讓你明白正則表達(dá)式是什么,并對它...
    阿杰Alex閱讀 1,565評論 0 10
  • 正則表達(dá)式到底是什么東西?字符是計(jì)算機(jī)軟件處理文字時(shí)最基本的單位,可能是字母,數(shù)字,標(biāo)點(diǎn)符號,空格,換行符,漢字等...
    獅子挽歌閱讀 2,287評論 0 9
  • http://www.jb51.net/tools/zhengze.html 正則表達(dá)式30分鐘入門教程 版本:v...
    nullleaf閱讀 664評論 0 2

友情鏈接更多精彩內(nèi)容