正規表示式

2021-08-08 06:46:42 字數 2469 閱讀 8462

正規表示式

regular expression re regex

一 定位

簡潔的一組的字串表示式

通用字串表達框架

判斷字串特徵歸屬

二 正規表示式常用操作符

三 語法例項

p(y|yt|yth|ytho)?n 『pn』,』pyn』,pytn』,pythn』,python』

python+ 『python』,pythonn』pythonnn』…………………

py[th]on 『pyton』,』pyhon』

py[^th]on 『pyaon』,』py&on』,』py_on』………………………

pyn 『pn』,』pyn』,』pyyn』,』pyyyn』

注:表示拓展前乙個字元0~3次

四 經典例項

name

academy

^[a-za-z]+$

26個字母組成的字串

^[a-za-z0-9]+$

26個字母和數字組成的字串

^-?\d+$

任意整數型字串

^[0-9][1-9][0-9]$

正整數型字串

[1-9]\d

[\u4e00-\u9fa5]

中文字元

re庫使用

import re

一 正規表示式表示型別

raw string

表示為: r』text』

eg: r』[1-9]\d』

r』\d-\d|\d-\d』

raw string是不包含對轉移符再次轉義的字串

可以避免使用如』\』表示』\』

二 re庫主要功能函式

1. re.search(pattern,string,flags=0)
flages控制標記

eg

import re

match=re.search( r』[1-9]\d』 , 『bit 10093』)

if match:

print ( match.group(0) )

2. re.match( pattern,string,flags,flags=0 )
不同於re.search( ) ,re.match( )是從開始位置匹配

re.match( r』[1-9]\d』 , 『bit 10093』 )不會匹配出結果

3. re.findall( pattern,string,flags=0 )
eg

ls = re.findall( r』[1-9]\d』, 『bit 10081 tsu 10093』)

print ( ls )

[『10081』, 『10093』]

4. re.split ( pattern,string,maxsplit=0,flags=0 )
maxsplit: 最大分割數,剩餘部分作為後乙個元素輸出

eg

re.split( r』[1-9]\d』, 『bit 10081 tsu 10083』 )

[ 『bit』, 『tsu』, 」]

re.split( r』[1-9]\d』, 『bit 10081 tsu 10083』, maxsplit=1 )

[『bit』 , 『tsu 10083』]

注意:maxsplit的數值決定了其割掉的段的數量

5. finditer( pattern, string, flags=0 )
eg

for m in re.finditer( r』[1-9]\d』, 『bit 10081 tsu 10083』 ):

if m:

print( m.group (0) )

10081

10083

6. re.sub(pattern, repl, string, count=0, flags=0 )
repl: 替換匹配字串的字串

eg

re.sub( r』[1-9]\d』, 『:zipcode』 , 『bit 10081 tsu10083』 )

『bit :zipcode tsu :zipcode』

三 re庫的等價用法

regex = re.complie( pattern, flags=0 )

eg

regex = re.complie( r』[1-9]\d』 )

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

非負整數 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正規表示式 編寫正規表示式

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