| 代碼 | 功能 |
|---|---|
| (?=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