正規表示式 編譯標誌

2021-07-06 03:46:38 字數 1729 閱讀 3646

.代表匹配任意單個字元,但是一般情況下\n \t字元卻匹配不到。匹配時候加上re.s編譯標誌即可解決問題。

>>> 

import re

>>> r1 = r"qq.com"

#這裡的『.『不止是點,代表匹配任意單個字元

>>> re.findall(r1, "qq.com")

['qq.com']

>>> re.findall(r1, "qqxcom")

['qqxcom']

>>> re.findall(r1, "qqxcom", re.s)

['qqxcom']

>>> re.findall(r1, "qq\ncom") #但是在匹配\n \t等卻不行,加上re.s編譯標誌即可

>>> re.findall(r1, "qq\ncom", re.s)

['qq\ncom']

>>> re.findall(r1, "qq\ncom")

>>> re.findall(r1, "qq\tcom", re.s)

['qq\tcom']

re.ignorecase的縮寫,此編譯標誌代表,匹配時候忽視字母大小寫

>>> 

import re

>>> r1 = r"top"

>>> re.findall(r1, "top top top")

['top']

>>> re.findall(r1, "top top top", re.i)

['top', 'top', 'top']

re.multiline的縮寫:多行匹配,影響 ^ 和 $

#!/usr/bin/python

#coding:utf8

import re

r1 = r"^hello|good$"

s = """

hello world

hello python

very good

"""#在乙個字串有多行的時候

print re.findall(r1, s) #不加re.m之匹配第一行

print

"#"*20

print re.findall(r1, s, re.m) #加了之後,匹配所與的行

$ python e6.py

['good']

####################

['hello', 'hello', 'good']

re.verbose的簡寫,能夠使用res的verbose狀態,使之正規表示式更加清晰。

#!/usr/bin/python

#coding:utf8

import re

#匹配乙個**號碼:0570-1234567

res = r"""

\d-?

\d """

#res = r"\d-?" 如果這樣的話,匹配不需要加re.x

print re.findall(res, "0570-1234567")

print

"#"*20

print re.findall(res, "0570-1234567", re.x)

$ python e7.py

####################

['0570-1234567']

正規表示式標誌

regexp中宣告標誌 標誌作為regexp建構函式的第二個引數,其可以用如下方式宣告 var patt1 new regexp 規則 模式 標誌 正規表示式直接量中宣告標誌 與其他語法不同的是,在正規表示式直接量中宣告標誌,是在 符號之外說明的,即它們不出現在兩個斜槓之間,而是位於第二個斜槓之後。...

再談正規表示式編譯

這些天在探求正規表示式編譯的時候,也看到了之前有些朋友寫的工具,下面有乙個就不錯。基本實現了我所需要的所有功能。但該工具有乙個美中不足,就是無法指定強名稱檔案,以及其他的一些屬性。這可能是我們在編譯的時候很需要的。為此,我修改了該程式,增加了乙個視窗,讓使用者可以隨意設定一些通用選項。如下圖所示 下...

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...