新人第005天---正則表達式

正則表達式是個好東西,在匹配文檔過程中很有效,所以花了點時間學習了一下。做一些筆記。

https://deerchao.net/tutorials/regex/regex.htm#howtouse
這篇寫的好,講得比較細致,把里面的重點摘出來使用。

一些實用的正則表達式工具和資料:
在線regex測試工具:http://www.regexpal.com/
正則表達式語法:https://msdn.microsoft.com/zh-cn/library/az24scfc.aspx
《精通正則表達式》《正則表達式必知必會》

筆記內(nèi)容
1.字符匹配:
匹配任意內(nèi)容: . (匹配除\n之外的任意字符)
匹配文字:\w 匹配非文字:\W
匹配數(shù)字:\d 匹配非數(shù)字:\D
匹配任意空白符(空格,tab,換行符,全角空格):\s
匹配非空白符:\S
匹配標點符號:\p{P}

2.定位點:
匹配單詞邊界:\b 匹配非單詞邊界:\B
字符串開始、結(jié)束:^ $
正字符組:[ ]正字符組指定一個字符列表,其中的任何一個字符可出現(xiàn)在輸入字符串中以便進行匹配。 此字符列表可以單獨指定和/或作為范圍指定
負字符組:[^]

3.數(shù)量匹配:

數(shù)量匹配說明圖

4.分組構(gòu)造
構(gòu)建子表達式:(exp)
捕獲子表達式:
\1(這個數(shù)字代表子表達式的初始數(shù)字);
命名為name的exp: (?<name>exp)或(?'name'exp)
捕獲該表達式:\k<name> \k'name'或(?(name)yes|no)(表示:name表達式匹配成功則執(zhí)行yes表達式,失敗則執(zhí)行no表達式)
(?<duplicateWord>\w+)\s\k<duplicateWord>\W(?<nextWord>\w+)
零寬度正預測先行斷言(向后匹配):(?=) \b\w+(?=\sis\b) 負預測:(?!) \b(?!un)\w+\b
零寬度正回顧先行斷言(向前匹配):(?<=) (?<=\b20)\d{2}\b 負預測:(?<!) (?<!(Saturday|Sunday) )\b\w+ \d{1,2}, \d{4}\b

5.轉(zhuǎn)義符:
( )需要被轉(zhuǎn)義

6.貪婪&懶惰匹配

貪婪&懶惰匹配規(guī)則圖

匹配:aabab
a.?b —>aab
a.
b —>aabab

運用:
在線regex測試工具:http://www.regexpal.com/
1.匹配全文中的IP地址
((2[0-4]\d|25[0-5]|[01]?\d\d?).){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

2.匹配可嵌套的HTML結(jié)構(gòu)
<div[>]*>[<>](((?'Open'<div[^>]>)[<>]*)+((?'-Open'</div>)[<>])+)(?(Open)(?!))</div>

3.匹配手機號碼
/**

  • 移動號碼段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147
  • 聯(lián)通號碼段:130、131、132、136、185、186、145
  • 電信號碼段:133、153、180、189
    **/
    /((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8}/g —js寫法
regex工具輸出結(jié)果

4.搜索重復的單詞(this this 或者go go 等內(nèi)容)
(\b\w+\b)\s+\1
\b(?<Word>\w+)\b\s+\k<Word>\b


regex工具輸出結(jié)果

未完待續(xù)。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 正則表達式到底是什么東西?字符是計算機軟件處理文字時最基本的單位,可能是字母,數(shù)字,標點符號,空格,換行符,漢字等...
    獅子挽歌閱讀 2,287評論 0 9
  • 注:本篇文章只為方便查看,特此保留,如有冒犯,敬請諒解?。?! 本文目標 30分鐘內(nèi)讓你明白正則表達式是什么,并對它...
    阿杰Alex閱讀 1,563評論 0 10
  • 聲明:本文基本是轉(zhuǎn)載千葉的博客,里面稍微修改。 一、通過第三方類庫正則匹配 在ios項目中可以借用第三方框架Reg...
    黑夜0411閱讀 1,308評論 0 0
  • 一.第三方框架RegexKitLite的使用 在ios項目中可以借用第三方框架RegexKitLite來簡化對正則...
    貪吃的貓cx閱讀 1,096評論 0 3
  • 轉(zhuǎn)載自正則表達式30分鐘入門教程 入門 學習正則表達式的最好方法是從例子開始,理解例子之后再自己對例子進行修改,實...
    夏天的風_song閱讀 1,965評論 0 0

友情鏈接更多精彩內(nèi)容