fei 正規表示式 Perl中強大的正規表示式

2021-10-16 19:12:47 字數 1934 閱讀 3799

perl的正則是相當強大的!!!!!

perl 程式中,正規表示式有三種存在形式

分別是(1模式匹配:m//     #平時我們簡寫 // ,略去m,

三個引數

/i不區分大小寫

/s匹配任何字元

/x新增空格

(2 模式替換:s///

/g    進行全域性替換

\u     大小寫轉換,例如s/(fred|barney)/\u$1/gi;

\l    轉換小寫

\e    影響到剩餘的(替換的)字串

\l 和\u    寫形式時(\l 和\u),只作用於下乙個字元

(3 模式轉化:tr///

這三種形式一般都和 =~ 或 !~ 搭配使用,"=~" 表示相匹配(does),"!~" 表示不匹配(doesn't),並在左側有待處理的標量變數。如果沒有該要處理的變數,則預設為處理 $_ 變數中的內容。

表示式中的一些常用模式。

/表示式/

結果匹配除換行符以外的所有字元

x?匹配 0 次或一次 x 字串

x*匹配 0 次或多次 x 字串,但匹配可能的最少次數

x+匹配 1 次或多次 x 字串,但匹配可能的最少次數

匹配 0 次或多次的任何字元

匹配 1 次或多次的任何字元

匹配剛好是 m 個 的指定字串

匹配在 m個 以上 n個 以下 的指定字串

匹配 m個 以上 的指定字串

匹配符合 內的字元

匹配不符合 內的字元

[0-9]

匹配所有數字字元

[a-z]

匹配所有小寫字母字元

[^0-9]

匹配所有非數字字元

[^a-z]

匹配所有非小寫字母字元

匹配字元開頭的字元

匹配字元結尾的字元

\d匹配乙個數字的字元,和 [0-9] 語法一樣

\d+匹配多個數字字串,和 [0-9]+ 語法一樣

\d非數字,其他同 \d

\d+非數字,其他同 \d+

\w英文本母或數字的字串,和 [a-za-z0-9] 語法一樣

\w+和 [a-za-z0-9]+ 語法一樣

\w非英文本母或數字的字串,和 [^a-za-z0-9] 語法一樣

\w+和 [^a-za-z0-9]+ 語法一樣

\s空格,和 [\n\t\r\f] 語法一樣

\s+和 [\n\t\r\f]+ 一樣

\s非空格,和 [^\n\t\r\f] 語法一樣

\s+和 [^\n\t\r\f]+ 語法一樣

\b匹配以英文本母,數字為邊界的字串

\b匹配不以英文本母,數值為邊界的字串

a|b|c

匹配符合a字元 或是b字元 或是c字元 的字串

abc匹配含有 abc 的字串

(pattern)

() 這個符號會記住所找尋到的字串,是乙個很實用的語法。第乙個 () 內所找到的字串變成 $1 這個變數或是 \1 變數,第二個 () 內所找到的字串變成 $2 這個變數或是 \2 變數,以此類推下去。

/pattern/i

i 這個引數表示忽略英文大小寫,也就是在匹配字串的時候,不考慮英文的大小寫問題。

如果要在 pattern 模式中找尋乙個特殊字元,如 "*",則要在這個字元前加上 \ 符號,這樣才會讓特殊字元失效

*?  +?   ??  為這三個數量詞的非貪婪的型別

perl處理完後會給匹配到的值存在三個特殊變數名

$&, $`, $'。匹配上的那部分字串將自動儲存在$&之中.變數$1 中的值為

there,而$&為整個被匹配的部分,匹配部分的前一部分存放在$`之中,後一部分被存到$'。另一種說法是,$`中含有正規表示式引擎在匹配

成功前所找到的變數,而$'為此模式還沒有匹配的剩餘部分。如果將這三個變數放在一起,你將得到原始字串

fei 正規表示式 正規表示式 中文

在網上看到很多對中文進行校驗的正則,但是很多在js裡使用會無效,下面給大家推薦幾個好的 w u4e00 u9fa5 uf900 ufa2d 1 乙個正規表示式,只含有漢字 數字 字母 下劃線不能以下劃線開頭和結尾 a za z0 9 u4e00 u9fa5 其中 powered by 25175.n...

fei 正規表示式 正規表示式小結

常用的元字元常用的反義 常用的限定符 語法 說明 語法 說明 語法 說明 w 匹配字母或數字或下劃線或漢字 w匹配任意不是字母 數字 下劃線 漢字的字元 重複零次或者更多次 s匹配任意的空白字元 s匹配任意不是空白符的字元 重複一次或更多次 d匹配數字 d匹配任意非數字的字元 重複零次或一次 b匹配...

Perl 正規表示式

正規表示式文中列表 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個後向引用 或乙個八進位制轉義符。匹配輸入字串的開始位置。如果設定了 regexp 物件的multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束位置。如果設定了 regexp 物件的multiline 屬性...