為什麼要學正規表示式 4

2021-10-08 16:35:14 字數 1599 閱讀 9562

在處理正字串的時候,經常會有一些複雜規則的字串需求,

正則表表示式就是描述這些規則的公工具。

換句話說。

正規表示式就是記錄文字規則的**。

前兩期我們說了相對簡單的行定位符

和元字元

還有限定符

還沒有看過的小夥伴可以去看看

今天我們來看看正規表示式中的字元、排除字元、選擇字元和轉義字元

正規表示式查詢數字和字母應該算是最簡單的了。因為已經有了我們之前講過的元字元是專門應用於數字和字母的。例如\d,\w等等。

但是這裡引入乙個新的問題,如果我要匹配沒有預定義的字元例如(a,o,e)怎麼辦?

來接著往下看,其實這個問題不難。咱們只需在中列出它們就好了。

例如[aoe]的意思就是任意乙個字母。[.?!]匹配的是標點符號』,』,』?『和』!』。還記得之前講過的\d吧,它匹配的是任意的數字。在這裡也可以使用[0-9]來表示;

同理如果只考慮英文本母和數字的話那它和[0-9a-za-z]的意思也是一樣的!

比如字串helloword123,/[0-9]+/g可以匹配數字,即匹配結果為123。

在上面的字元類中說的是匹配符合指定字串的字元類,現在講的排除字元其實是和它剛好相反的。

就是匹配不符合指定字串的字元類。

正規表示式已經提供了』『字元,前面我們講過,單獨的』'指的是字串的開頭。這裡的[^…]指的是非的意思

比如字串 helloword123,/[^0-9]+/g 可以匹配非數字,即匹配結果為 helloword。

同樣的,/[^he]+/g 可以匹配非h非e的字元,匹配結果為lloword123。

當我們有匹配身份證的需求的時候,首先需要了解一下身份證組成的規則,身份證號長度為15或者18。當身份證證號為15位的時候,全為數字;當身份證號位18位的時候,分為兩種情況:前17位全為數字,後面是校驗位。可能是x,也有可能是數字。

在上述的案例分析中,包含著選擇的邏輯,這就需要選擇字元(|)來實現了。這個字元的意思就是與的意思。

咱們來看看身份證的正則寫法:

> (^\d$) | (^\d$) | (^\d)(\d|x|x)$
這個正規表示式的含義就是匹配15位數字,或者18位數字。或者17位數字和最後一位,最後一位可能是數字或者x和x。

其實正規表示式的轉義和python的轉義字元差不多,都是將一些比較特殊的字元(".","?","")等變為普通字元。

來看一組例子,我們現在有乙個匹配ip的需求,例如匹配『127.0.0.1』。如果直接匹配的的話,正則寫法如下:

[0-9].[0-9].[0-9].[0-9]
但是這樣顯然是不正確的。因為』.『會匹配任意乙個字元。如果這樣『127202022』等這樣的字元也會被匹配進來。所以需要對』.'進行轉義。

[0-9]\.[0-9]\.[0-9]\.[0-9]
這就是轉義後正確的正規表示式!

正規表示式 4

正規表示式的結構與算術表示式的結構類似。即,各種元字元和運算子可以將小的表示式組合起來,建立大的表示式。通過在一對分隔符之間放置表示式模式的各種元件,就可以構建正規表示式。對於 jscript,分隔符是正斜槓 字元。例如 expression 在上面的示例中,正規表示式模式 expression 儲...

正規表示式概述 什麼是正規表示式

正規表示式概述 正規表示式在程式語言中存在著廣泛的應用,特別是用來處理字串。如匹配字串 查詢字串 替換字串等。可以說,正規表示式是一段文字或乙個公式,它是用來描述用某種模式去匹配一類字串的公式,並且該公式具有一定的模式。本小節將介紹正規表示式的基本概念 第乙個正規表示式,以及測試正規表示式的工具co...

簡單學正規表示式

前面幾章,講解過正規表示式。這章,我們配合python的re模組,對正規表示式進行總結 其實正規表示式,如果要學會簡單的運用,只要記住下面幾種型別,基本能會使用 1 萬用字元 表示匹配乙個單獨的字元,除了換行符 ython,就能匹配python,ython 2 字符集 表示匹配括號內任意的字元 0 ...