正規表示式

2021-07-28 00:06:57 字數 1366 閱讀 5275

正規表示式(各個語言都有)

正規表示式是定義一種匹配規則的。規則是用來匹配字元的

匹配是從第乙個字元挨個進行匹配

\b是代表單詞的開頭或者結尾,是單詞的分界處,只匹配乙個位置

. 是另乙個元字元,用於匹配字元

* 是把*前面的字元重複n次 匹配的是重複次數 指*前邊的內容可以連續重複使用人一次以使整個表示式得到匹配

ha*  :h後有n個a  ha,haaa,haaa,haaaaa

\w 匹配字母或數字或下劃線或漢子

\s 匹配任意的空白字元

\d 匹配數字

\b 匹配單詞的開始與結束

^匹配字串的開始  匹配的是乙個位置

$ 匹配字串的結束  匹配的是乙個位置   例: ^\d{5,12}$   表示匹配的是必須為5-12位的數字

###字元轉義##

查詢 . 或者*和\時 用\取消字元的特殊意義 

###重複###

*  重複0次或更多次

+  重複一次或更多次

?  重複0次或一次

{n}重複n次

{n,}重複n次或更多次

{n,m}重複n到m次

###字元類###

例 匹配母音字母[aeiou]就匹配任何乙個英文母音字母

[0-9]代表的含義與\d完全一致:一位數字 

\(?0\d[)-]?\d 首先是乙個轉義字元\(它能出現0次或1次(?),然後是乙個0後面跟著兩個數字(\d{2}),然後是)或-或空格中的乙個,它出現1次或不出現(?)最後是8個數字(\d))

###反義###

有時候需要查詢不屬於某個能簡單定義的字元類的字元比如想查詢除數字以外的情況

\w 匹配任意不是字母,數字,下劃線,漢字的字元

\s匹配任意不是空白符的字元

\d匹配任意非數字的字元

\b 匹配不是單詞開頭或者結束的位置

[^x] 匹配除了x以外的任意字元

[^aeiou] 匹配除了aeiou這幾個字母以外的任意字元

###後向引用###

用小括號指定乙個子表示式後,匹配這個子表示式的文字(也就是此分組捕獲的內容)可以在表示式或其他程式中作進一步的處理,預設情況下,每乙個分組會自動擁有乙個組號,規則是:從左向右,以分組的左括號為標誌,第乙個出現的分組的組號為1,第二個為2,以此類推

捕獲 (exp)  匹配exp,並捕獲文字到自動命名的組裡

(?exp) 匹配

(?:exp) 匹配exp,不捕獲匹配的文字,也不給此分組分配組號

零寬斷言 (?=exp) 匹配exp前面的位置

(?<=exp) 匹配exp後面的位置

(?!exp) 匹配後面跟的不是exp的位置

(?<!exp) 匹配錢買你不是exp的位置

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...