1.概念
2.python re模式返回pattern物件 匹配所有函式 3.falg引數引數flag是匹配模式,取值可以使用按位或運算子』|』表示同時生效,比如re.i | re.m。常用的flag引數:
引數屬性
re.i
忽略大小寫
re.m
多行模式,改變』^'和'$'
的行為
re.s
點任意匹配模式,改變』.'的行為
re.l
使預定字元類 \w \w \b \b \s \s 取決於當前區域設定
re.u
使預定字元類 \w \w \b \b \s \s \d \d 取決於unicode定義的字元屬性
re.x
詳細模式。這個模式下正規表示式可以是多行,忽略空白字元,並可以加入注釋。
4.正規表示式通常通過特殊的語法來表示
元字元屬性.任意單字元 想表示字串的 . 就這麼些 \.
\d乙個數字 相當於[0-9]
\d乙個 非 數字
\w乙個數字字母或者下劃線 [a-za-z0-9_](中文)
\w\w的反面
\s空白
\s非空白
\b單詞邊界 r』\bis\b』特殊的地方。單詞邊界前一定要加r』
5.正規表示式常用的規則
取值:
表示式屬性
[abc]
abc中的乙個
[a-z]
a-z中的乙個
[0-9]
0-9中的乙個數字
[a-f0-5]
a-f或0-5中的乙個
[ab][de][1]
每個[ ]取乙個,連起來
量詞:
表示式屬性
m個 a:4個連續的a
m-n個 b:2-5個連續的b
1個以上
0個以上
0次或一次
分組:(name|age|***) 乙個name或者age或者***貪婪模式:
會盡量長的區尋找結尾
反貪婪(在後面加乙個?):只要乙個滿足就可以
#貪婪模式
reg2=re.compile('a\w*b')
#非貪婪
reg3=re.compile('a\w*?b')
#正規表示式
import re
#貪婪模式
reg2=re.compile('a\w*b')
#非貪婪
reg3=re.compile('a\w*?b')
str2='a123b456b789b'
result2=re.findall(reg2,str2)
result3=re.findall(reg3,str2)
print(result2)
print(result3)
6.正則提取示例
import re
# 需要被提取的字段
info='''
導演: 弗蘭克·德拉邦特 frank darabont 主演: 蒂姆·羅蘋斯 tim robbins /...
1994 / 美國 / 犯罪 劇情
9.6 1135992人評價
希望讓人自由。
'''#提取時間
#方法一:
reg_year=re.compile("\d\s/")
result1=re.findall(reg_year,info)
print(result1[0][0:4])#讀取列表第乙個的前四個字元
#方法二
reg_year=re.compile("(\d)\s/")#提前裡面只符合的內容
result1=re.findall(reg_year,info)
print(result1)
#提取導演
reg_name=re.compile('導演:(.*)主演:',re.s)#re.s任意匹配模式,前後標識字元不同行
result2=re.findall(reg_name,info)
print(result2[0].strip())#去除左右空格
python正規表示式及使用正規表示式的例子
正規表示式 正則表達用來匹配字串 正規表示式匹配過程 正規表示式語法規則 匹配除換行 n 外的任意字串 abcabc 轉義字元,使後乙個字元改變原來的意思 a c a c 字符集,對應的位置可以是字符集中任意字元,字符集中的字元可以逐個列出,也可以給出範圍,如 abc 或 a c 第乙個字元如果是 ...
使用正規表示式
如果原來沒有使用過正規表示式,那麼可能對這個術語和概念會不太熟悉。不過,它們並不是您想象的那麼新奇。請回想一下在硬碟上是如何查詢檔案的。您肯定會使用 和 字元來幫助查詢您正尋找的檔案。字元匹配檔名中的單個字元,而 則匹配乙個或多個字元。乙個如 data?dat 的模式可以找到下述檔案 data1.d...
使用正規表示式
本文節選自 並有稍微修正。使用正規表示式 您可以使用正規表示式做很多事情。在以下的列表中,您可以找到一些最普通 最常用的正規表示式的例子。表示文字串必須在一行的開頭。所以,當查詢行的開頭只為 hosts 的行,可以使用命令 grep ls hosts 代表了一行的結尾。所以,當查詢行的結尾只為 ho...