使用正規表示式來搜尋文字是高效快捷的方式
比如要搜尋下文中的紅色字型,
123test
width=130>
keyword is ok
首先,我寫了乙個這樣的正規表示式:
reg = re.compile("", re.i)
ret = reg.search("test>keyword is ok
") /s表示匹配空格,/s表示匹配非空格,將這兩種情況加在一起:[/s|/s]就表示匹配任意字元,包括字母、數字、換行符、空格等等;*表示之前的[/s|/s]可以出現0次或多次,*?則表示懶惰匹配,也就是配備離keyword最近的乙個,使用這個表示式匹配的最後結果是:
123test>keyword is ok
也就是只去掉了和,而關鍵字「keyword」之前的顯然是過渡匹配了,
現在需要改進之前的那個正規表示式,需要否定keyword的之前出現的,這樣就可以保證獲得的字串中不含.
這時候就需要用否定環視來解決了。否定環視的具體用法是:
表示式
說明
(?<=expression)
逆序肯定環視,表示所在位置左側能夠匹配
expression
(?
逆序否定環視,表示所在位置左側不能匹配
expression
(?=expression)
順序肯定環視,表示所在位置右側能夠匹配
expression
(?!expression)
順序否定環視,表示所在位置右側不能匹配
expression
更詳細的使用方法可以參考:http://blog.csdn.net/lxcnn/archive/2009/06/28/4304754.aspx
在這裡,我將正規表示式改為
reg = re.compile(").)*?keyword[/s|/s]*?", re.i)
(?:(?).)*?表示在這個正規表示式的左側,不能出現
正規表示式環視否定例子
使用正規表示式來搜尋文字是高效快捷的方式 比如要搜尋下文中的紅色字型,123testkeyword is ok 首先,我寫了乙個這樣的正規表示式 reg re.compile re.i ret reg.search testkeyword is ok s表示匹配空格,s表示匹配非空格,將這兩種情況加...
正規表示式環視
正規表示式環視 1.環視又叫預搜尋和零寬斷言 2.環視又劃分為 表示式說明 expression 逆序肯定環視,表示所在位置左側能夠匹配expression 逆序否定環視,表示所在位置左側不能匹配expression expression 順序肯定環視,表示所在位置右側能夠匹配expression ...
正規表示式環視
4種環視 順序肯定環視 pattern 逆序肯定環視 pattern 順序否定環視 pattern 逆序否定環視 注意 環視是不會占用物理匹配的 順序肯定環視的2種用法 環視在左表示式在右 二次篩選匹配 表示式在右環視在左 以表示式環視結尾 如 字元aa1235206894 s d 環視匹配前6位任...