第五天 第五章 正規表示式

2022-09-13 02:54:16 字數 2197 閱讀 7903

#

正規表示式

'''*****==元字元*****==

1 行定位符:^表示開始 如^tm只能匹配以tm開關的字串

$表示結束 如tm$只能匹配以tm結尾的字串

如果想匹配tm在任意位置的字串,直接用tm即可

2 常用元字元:

.匹配除換行符以外的任意字元

.可以匹配「mr\nm\tr」中的m r m \t r

\w匹配字母、數字、下劃線、漢字

\w可以匹配「m 中 7r\n」中的「m 中 7 r」,但不能匹配「\n」

\w匹配除字母、數字、下劃線或漢字以外的字元

\w可以匹配「m 中 7r\n」中的「\n」

\s匹配單個空白符(包括tab鍵和換行符)

\s可以匹配「mr\tmr」中的「\t」

\s除單個空白符(包括tab鍵和換行符)以外的所有字元

\s可以匹配「mr\tmr」中的m r m r

\b匹配單詞的開始或結束,單詞的分界符通常是空格,標點符號或者換行

在「i like mr or am」字串中,\bm與mr中的m相匹配,但與am中的m不匹配

\d匹配數字

\d可以與「m7ri」中的字元7匹配

*****==元字元*****==

''''''

*****==限定符*****==

?匹配前面的字元零次或一次

colou?r,該表示式可以匹配colour和color

+匹配前面的字元一次或多次

go+gle,該表示式可以匹配的範圍從gogle到goo...gle

*匹配前面的字母零次或多次

go*gle,該表示式可以匹配的範圍從ggle到goo...gle

匹配前面的字元n次

gogle,該表示式只匹配google

匹配前面的字元最少n次

gogle,該表示式可以匹配的範圍從google到goo...gle

匹配前面的字元最少n次,最多m次

employe(0,2),該表示式可以匹配employ、employe和employee三種情況

*****==限定符*****==

''''''

*****==字元類*****==

表示式查詢字母和數字是很簡單的,因為已經有了對應這些集合的元字元(如\d和\w)

但如果要查詢特定的幾個字元(a/e/i/o/u)怎麼辦,只要在方括號中列出即可。

[aeiou]可以匹配任意乙個母音字母

[.?!]可以匹配任意乙個符號(. ? 或 !)

[0-9]可以匹配一位數字,和\d一樣

[z-z0-9a-z]和\w一樣(如果不考慮中文的話)

[\u4e00-\u9fa5]匹配任意乙個漢字

[\u4e00-\u9fa5]+匹配多個連續漢字

*****==字元類*****==

''''''

*****==排除字元*****==

^表示行的開始,但是當它放到方括號中的時候表示的是排除

[^a-za-z]除了字母,其它全都匹配

*****==排除字元*****==

''''''

*****==選擇字元*****==

如果匹配身份證號,就有兩種匹配方法,一種是18位,一種是15位。這就需要選擇邏輯。

| 選擇字元,可以理解為或者

(^\d$)|(^\d$)|(^\d)(\d|x|x)$:15位全數字 或 18位全數字 或 17位數字+1位數字或x或x

*****==選擇字元*****==

''''''

*****==轉義字元*****==

\ 轉義字元,將. ? \這樣的特殊字元變為普通字元

這樣寫有乙個問題,因為.可以匹配任意乙個字元,所以127101011也可以匹配出來

所以這裡就需要轉義字元 [1-9]\.[0-9]\.[0-9]\.[0-9]

這樣的話三個數字間只能匹配字元. 而不會匹配其它非點的字元

*****==轉義字元*****==

''''''

*****==分組*****==

小括號的第乙個作用就是改變限定符的作用範圍,如:(six|four)th匹配sixth或fourth,如果沒有小括號則匹配six或fourth

第二個作用就是分組,也稱子表示式。如(\.[0-9]),就是對分組(\.[0-9])進行重複操作。

*****==分組*****==

'''

第五章正規表示式

使用正規表示式 import re s 100 north main road re.sub road rd.s 100 north broad rd.1 在python中,正規表示式功能包含在re module中 2 re.sub 方法可以做字串替換,正規表示式 要替換的字串,原始字串 searc...

第五章 表示式

表示式這章比較簡單,一般有過c的基礎的人都應該問題不大,要知道連我都覺得比較簡單,相信你們肯定更加容易了。new和delete表示式 動態建立和釋放陣列,定義變數時,必須指定其資料型別和名字。然而動態建立物件時,只需要指定其資料型別,而不必為該物件命名。取而代之的是,new表示式返回值指向新建立物件...

國慶第五天

直接在寢室待了乙個上午 一 matlab 試了一下昨天安裝的matlab2010b發現檔案都打不開,報這個錯 undefined function or method uiopen for input arguments of type char 二 c 1.找到了個之前 裡的乙個問題 把本週開頭和...