正規表示式

2021-09-25 13:23:03 字數 2571 閱讀 9328

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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...