import re
str1=
'wangluochongcheng1601gaoxingyuan'
#普通字元為原子
pat1=
'gaoxingyuan'
res1=re.search(pat1,str1)
#print(res1)
#非列印字元為原子'\n':換行符 '\t':製表符
str2=
'''wangluochongcheng1601gaoxingyuan
'''pat2=
'\n'
res2=re.search(pat2,str2)
#print(res2)
#通用字元作為原子
#'\w':字母,數字,下劃線
#'\w'除字母,數字,下劃線以外的任意字元
#'\d'十進位制數
#'\d'除十進位制數以外的任意字元
#'\s'空白字元也就是空格
#'\s'除空白字元以外的任意字元
#從str3中提取出乙個3個字母和4個數字和1個除字母數字下劃線外的字元的字串
'''str3='974195045gao08.'
pat3='\w\w\w\d\d\d\d\w'
res3=re.search(pat3,str3)
print(res3)
'''#原子表:只能從原子表中選乙個原子出來
'''str4='974195045gao08.'
pat4='974195[and0jkc]45'
res4=re.search(pat4,str4)
print(res4)
'''#[^and0jkc]代表非裡面的元素,除裡面的元素以外
#所以如果pat4=[^and0jkc]將不能匹配成功
#元字元
'''. 除換行符外任意乙個字元
pat='gao.....'
^ 匹配字串開始的位置
pat='^974'
$ 匹配字串結束的位置
pat='21.$'
* 前面的那個字元出現0\1\多次
pat='gao*'
?前面的那個字元出現0\1次
pat='gao?'
+ 前面的那個字元出現1\多次
str='974195045gaooooo0821.'
pat='gao+'
前面的那個字元恰好出現n次,n為數字
pat='gao'
前面的那個字元至少出現n次
pat='gao'匹配出來會是他的最高次數的字串
比如上面的str會匹配出gaooooo
前面的字元至少出現n次,至多出現m次
| 模式選擇符 或
() 模式單元
'''#模式修正符
'''i 匹配時忽略大小寫*
m 多行匹配*
l 本地化識別匹配
u unicode
s 讓.匹配包括換行符*
string='python'
pat='pyt'
rst=re.search(pat,string,re.i)
print(rst)
'''#貪婪模式與懶惰模式
#預設的模式就時貪婪模式
'''string='poythony'
#貪婪模式
pat1='p.*y'
#懶惰模式
pat2='p.*?y'
rst1=re.search(pat1,string,re.i)
rst2=re.search(pat2,string,re.i)
print(rst1)
print(rst2)
'''#正規表示式函式
# re.match() re.search() 全域性匹配函式 re.sub()
#re.match() 只能從頭開始匹配
'''string='poythony'
pat='p.*?y'
#pat='o.*?y'將不能匹配
rst=re.match(pat,string)
print(rst)
'''#全域性匹配格式 re.compile(正規表示式).findall(資料)
'''string='poytphonypdsay'
pat='p.*?y'
rst=re.compile(pat).findall(string)
print(rst)
'''#[\s]或[^\s]都可以表示非空
'''pat="[a-za-z]+://[\s]*[.com|.cn]"
rst=re.compile(pat).findall(string)
print(rst)
'''#例項:匹配**號碼
#/d表示只匹配十進位制數
'''number='dsanjkl123nmkldnsa021-12355512dxca0731-5581313dsa9234'
pat="\d-\d|\d-\d"
rst=re.compile(pat).findall(number)
print(rst)
'''
正規表示式 正規表示式 總結
非負整數 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...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...