正規表示式是對**字串**操作的一種**邏輯公式**,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種邏輯過濾(模糊匹配)。
import re #正規表示式模組
string='jy2018/4/30jy'
re_srt=re.match('^jy',string).group() #是否以jy開始
print(re_srt)
import re #正規表示式模組
string='jy2018/4/30jy'
re_srt=re.findall('jy$',string) #是否以jy結尾
print(re_srt)
match:match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。用group(num=0)或groups()來獲取匹配的結果
findall:返回string中所有與pattern相匹配的全部字串,返回形式為陣列。
import re #正規表示式模組
string='jy\t\n2018/4/30jy'
re_srt=re.findall(r'...',string)
print(re_srt)
#結果['jy\t', '201', '8/4', '/30']
import re #正規表示式模組
string='jy\t\n2018/4/30jy'
re_srt1=re.findall('.',string)
re_srt2=re.findall('.*',string)
re_srt3=re.findall('...',string)
re_srt4=re.findall('...*',string)
print(re_srt1)
print(re_srt2)
print(re_srt3)
print(re_srt4)
#結果['j', 'y', '\t', '2', '0', '1', '8', '/', '4', '/', '3', '0', 'j', 'y']
['jy\t', '', '2018/4/30jy', ''] #有空格
['jy\t', '201', '8/4', '/30']
['jy\t', '2018/4/30jy']
import re #正規表示式模組
string='jy\t\n2018/4/30jy'
re_srt1=re.findall('.',string)
re_srt2=re.findall('.+',string)
re_srt3=re.findall('...',string)
re_srt4=re.findall('...+',string)
print(re_srt1)
print(re_srt2)
print(re_srt3)
print(re_srt4)
#結果['j', 'y', '\t', '2', '0', '1', '8', '/', '4', '/', '3', '0', 'j', 'y']
['jy\t', '2018/4/30jy'] #沒有空值
['jy\t', '201', '8/4', '/30']
['jy\t', '2018/4/30jy']
import re #正規表示式模組
string='jy\t\n2018/4/30jyefw、///\t\n\gsg'
re_srt1=re.findall(r'.',string)
re_srt2=re.findall(r'.*',string)
re_srt3=re.findall(r'.+',string)
re_srt4=re.findall(r'.+?',string)
print(re_srt1)
print(re_srt2)
print(re_srt3)
print(re_srt4)
#結果['j', 'y', '\t', '2', '0', '1', '8', '/', '4', '/', '3', '0', 'j', 'y', 'e', 'f', 'w', '、', '/', '/', '/', '\t', '\\', 'g', 's', 'g']
['jy\t', '', '2018/4/30jyefw、///\t', '', '\\gsg', '']
['jy\t', '2018/4/30jyefw、///\t', '\\gsg']
['j', 'y', '\t', '2', '0', '1', '8', '/', '4', '/', '3', '0', 'j', 'y', 'e', 'f', 'w', '、', '/', '/', '/', '\t', '\\', 'g', 's', 'g']
import re #正規表示式模組
string='jy\t\n2018/4/30jyefw、///\t\n\gsg'
re_srt1=re.findall('jy|2018',string)
print(re_srt1)
#結果['jy', '2018', 'jy']
import re #正規表示式模組
string='jy\t\n2018/4/30jyefw、///\t\n\gsg'
re_srt1=re.findall('\d+',string) #是數字且數字出現大於等於一次就拿出來(貪婪匹配,從前往後)
print(re_srt1)
#結果['2018', '4', '30']
import re #正規表示式模組
string='jy\t\n2018/4/30jyefw、///\t\n\gsg'
re_srt1=re.findall('\s+',string)
print(re_srt1)
#結果['\t\n', '\t\n']
import re #正規表示式模組
string='jy\t\n2018/4/30jyefw、///\t\n\gsg'
re_srt1=re.findall('\w',string)
print(re_srt1)
#結果['j', 'y', '2', '0', '1', '8', '4', '3', '0', 'j', 'y', 'e', 'f', 'w', 'g', 's', 'g']
import re #正規表示式模組
string='jy\t\n2018/4/30jy2018efw、///\t\n\gsg2018'
re_srt1=re.findall('.*y(2018).*?',string)
print(re_srt1)
#結果['2018']
import re #正規表示式模組
string='jy\t\n2018/4/30jy2018efw、///\t\n\gsg2018'
re_srt1=re.findall('[a-z0-9]',string) #等同於\w,中間不能寫逗號
print(re_srt1)
#結果['j', 'y', '2', '0', '1', '8', '4', '3', '0', 'j', 'y', '2', '0', '1', '8', 'e', 'f', 'w', 'g', 's', 'g', '2', '0', '1', '8']
import re #正規表示式模組
string ='jy\t\n2018/4/30jy2018efw、///\t\n\gsg2018'
re_srt1 = re.findall('[^0-9]', string)
print(re_srt1)
#結果['j', 'y', '\t', '\n', '/', '/', 'j', 'y', 'e', 'f', 'w', '、', '/', '/', '/', '\t', '\n', '\\', 'g', 's', 'g']
import re #正規表示式模組
string ='jy\t\n2018/\t4/30jy2018efw\t\ngsg2018'
re_srt1 = re.findall('.', string)
re_srt2 = re.findall('.', string) #最少出現4次,最多出現8次
print(re_srt1)
print(re_srt2)
#結果['2018', '/\t4/', '30jy', '2018', 'efw\t', 'gsg2']
['2018/\t4/', '30jy2018', 'efw\t', 'gsg2018']
a='xiaoming出生2023年5月21號'
b='xiaoming出生1990-07-02'
re_str=r'生(\d[年-]\d[月-]\d).*?'
string1=re.findall(re_str,a)
string2=re.findall(re_str,b)
print(string1)
print(string2)
#結果['2023年5月21']
['1990-07-02']
正規表示式 正規表示式 總結
非負整數 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...
Python正規表示式總結
匹配除換行符意外的任意字元 abc 字元集合,一次只能匹配乙個字元,匹配a b c abc 字元集合,不是a b c a z 小寫字元 a z 不是小寫 b 單詞邊界 b 不匹配單詞邊界 d 0 9 匹配1個數字 d 0 9 不匹配1個數字 s 匹配乙個空白字元.包括製表符 換行符 空格 s 非空白...
Python正規表示式總結
基礎匹配 d 可以匹配乙個數字,00 d 可以匹配 007 w 可以匹配乙個字母或者數字,00 w 可以匹配 007 或者 00a s 可以匹配乙個空格 可以匹配任意字元 匹配變長的字元,可以用 表示任意個字元 包括0個 用 表示至少乙個字元,用?表示0個或者1個字元,用表示n個字元,用表示n m個...