正則指引 字元組

2021-09-06 06:38:52 字數 1132 閱讀 6715

字元組:在同乙個位子可能出現的各種字元。

用正規表示式判斷數字字元:

re.search("[0123456789]",charstr) != none

其中[0123456789]以字串形式給出正規表示式,他是乙個字元組,表示可以是0到9的任意乙個字元。

net中regex.ismatch(charstr,"[0123456789]");

在預設情況下,search(pattern,string)只會判斷某個子串能否匹配pattern,只要pattern能匹配string中的一部分,

也認為是匹配成功,為了測整個string是否能匹配pattern,要在pattern兩端加上^和$.他們表示定位字串的起始和結束位置,

這樣就能保證,只有是整個string都可以由pattern匹配,才算成功。

像[0123456789]這個字元組,還可以使用範圍表示法:[0-9]

在字元組中:「-」表示範圍,一般根據字元對應的乙個碼值,碼值小的在「-」前面,大的在後面。

上面的例子中,「-」用來表示範圍,並不能匹配橫線字元,這一類字元叫做元字元,像[、]、^、$都是元字元。

那麼當我們需要匹配這些特殊的元字元的時候,需要進行轉義處理。

像「-」字元,如果是緊挨著「[」,會認為是普通字元,其他的情況都是元字元,可以使用「\」,對元字元進行轉義:

re.search("^[0\\-9]$","3") != none   //false

上面的「\」字元本身會聯合其他的例如「\n \r」等來使用,單獨使用也需要「\\」來進行轉義。

使用原生字串: re.search(r"^[0\-9]$","3") != none ,在字串前面加上r。就可以不用「\\」來表示"\"了。

排除型字元組:[^...]:表示當前位置,匹配乙個沒有列出的字元。

[^0-9]:表示匹配乙個不是數字的字元

字元組簡記法:

常見的有:

\d:[0-9]

\w:[0-9a-za-z]   這個還包括乙個下劃線

\s:[ \t\r\n\v\f]

對應的排除型字元組簡記法:

\d :與\d互補

\w :與\w互補

\s :與\s互補

最簡單的應用:[\s\s]組合使用,匹配所有的字元。

正則指引 量詞

量詞 指定字元組出現的次數 例如 d d d表示出現三個字元組,我們可以使用量詞表示法 d量詞可以表示字元組出現的次數,還可以表示字元組出現次數的範圍 d 就表示這邊可以匹配出現0到10次之間整數。一般量詞的表示 表示範圍 m x n 表示範圍 m x x可以無窮大 表示範圍 0 x n 還存在一組...

正則指引 斷言

正規表示式中的大多數結構匹配的文字會 出現在匹配的結果中,但是有時候不但關心目標文字的匹配,還要判斷目標文字左右兩側的文字是否符合要求,這種要求的正則裡叫做斷言。常見的斷言有三類 單詞邊界 行的起始 結束的位置 環視。單詞邊界 正則記著 b,它匹配 單詞邊界 的位置。使用情況 bword b bwo...

正則指引 括號

正則指引 括號 之前學習字元組和量詞,量詞是形容字元組的,但是有時候我們希望用量詞來形容多個元素,我們可以用括號完成,我們可以使用 把目標元素括起來,就可以把括號內部看成乙個整體,在括號外部使用量詞,量詞就會對括號內部的所有元素作用。用括號改變量詞的作用元素 re.research r ab ab ...