正則分支條件

2022-01-12 10:16:34 字數 668 閱讀 7180

平時工作過程中,用到的正規表示式挺多的,昨天晚上同事給了乙個分支條件匹配,突然看上去的時候感覺怪怪的,執行的時候也沒什麼問題。就說隨便用吧,不會有問題的,今天早上來發現匹配了一大堆垃圾資料。。。。

test

\s*?test.*?\s*?

\s*?test.*?\s*?

上面的乙個a標籤用下面的2個正則都可以匹配,但是如果換一種情況就不一樣了:

test

test

兩個a標籤的**,包含乙個換行符,如果用第乙個正則會得到乙個結果,也是他想要的。但是如果用第二個,就悲劇了 匹配範圍瞬間擴大到了所有換行符。

原因出在|上,|是乙個分支條件,這哥們會把條件進行分割,匹配分枝條件時,將會從左到右地測試每個條件,如果滿足了某個分枝,剩下的就不會管了。記錄一下,以後遇到不懂的 一定要查一下。

上面正則用的乙個匹配表示式:

.    匹配除了換行符以外的任意字元

\s 匹配任意空白字元

* 重複次數 大於0或者更多

\n 換行符

? 將貪婪的匹配模式改變為非貪婪模式

() 類似乙個分組的作用吧,處理結果非常好用

Pug條件 分支條件

var friends 10 case friends when 0p 您沒有朋友 when 1p 您有乙個朋友 default p 您有 個朋友 等價於 您有 10 個朋友 另一種塊展開的寫法 var friends 1 case friends when 0 p 您沒有朋友 when 1 p 您...

正規表示式 分支條件

從網上看到一篇有關正規表示式的敘述,走馬觀花看了一眼,一時來了興趣,便弄了弄。有關正規表示式分支使用 d d d與 d d d?有如下兩個js函式 function isdigit str var reg d d d return reg.test str function isdigit1 str...

正規表示式 字元類 分支條件 分組

感謝deerchao,寫的比菜鳥教程好太多了。現在感覺菜鳥教程可能就是翻譯了一些doc,而且是思路結構不太清晰的doc 進入正題,主要還是看了教程後自己的理解。字元類 字元類,即為如 aeiou 1 9 19 等用英文中括號括起字元的字元集合。解釋與辨析 aeiou 匹配a 或 e 或 i 或 o ...