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 屬性...