向前識別不等於指定字元就匹配,當下乙個單詞不等於...
時就識別出來括號前面指定的單詞。比如
isaac(?!asimov)
,就會這樣判斷,當緊跟著
isaac
後面不是單詞
asimov
時,就把它匹配出來。
例子:print('isaac(?!asimov)')
print(u'abcdasimovisaacttttt')
m = re.findall(u'isaac(?!asimov)', u'abcdasimovisaacttttt')
if m:
print(m)
print(u'abcdisaacasimovttttt')
m = re.findall(u'isaac(?!asimov)', u'abcdisaacasimovttttt')
if m:
print(m)
輸出結果如下:
isaac(?!asimov)
abcdasimovisaacttttt
['isaac']
abcdisaacasimovttttt
向後識別等於指定字元。這裡所謂向後,就是已經掃瞄過的字元。比如(?<=cai)mouse
規則,就是碰到
caimouse
時,就把
mouse
識別出來,意思就是掃瞄到
mouse
時,需要往回檢視已經掃瞄的字元是否是
cai,如果是就匹配成功。
例子:print('(?<=cai)mouse')
m = re.findall(u'(?<=cai)mouse', u'caimouse mousecai ccaimouse')
if m:
print(m)
結果輸出如下:
(?<=cai)mouse
['mouse', 'mouse']
向後識別不等於指定字元。這裡所謂向後,就是已經掃瞄過的字元。比如(?
規則,就是碰到
mouse
時,在它前面不能是字元
cai,如果是
cai就不匹配成功。
例子:print('(?m = re.findall(u'(?if m:
print(m)
結果輸出如下:
(?['mouse']
3 2 1 正規表示式的語法 1
這個語法規則是前面的擴充套件,主要在問號位置可以替換為特定的字元。例子 print m re.findall r a.r abcdefaghijk if m print m 輸出結果如下 abcd aghi 括號內容注釋掉,不起作用。在正規表示式分析時,跳過這些規則。例子 print a m re....
2 基本語法 正規表示式
我們知道c的變數和shell指令碼變數的定義和使用方法很不相同,表達能力也不相同,c的變數有各種型別,而shell指令碼變數都是字串。同樣道理,各種工具和程式語言所使用的正規表示式規範的語法並不相同,表達能力也各不相同,有的正規表示式規範引入很多擴充套件,能表達更複雜的模式,但各種正規表示式規範的基...
正規表示式語法
jscript 8.0 正規表示式語法 正規表示式是一種文字模式,包括普通字元 例如,a 到 z 之間的字母 和特殊字元 稱為 元字元 模式描述在搜尋文字時要匹配的乙個或多個字串。表示式 匹配 s 匹配空行。d d 驗證由兩位數字 乙個連字元再加 5 位數字組成的 id 號。s s 匹配 html ...