在正則表達式過濾特定結尾的寫法
前言
在 [ developer.mozilla.org ] 正規表達式 裡發現有個寫法我從來沒用過,在此把學習的過程做個紀錄。
內容
在 [ developer.mozilla.org ] 正規表達式 裡發現有個寫法是過濾特定結尾的寫法,語法是"x(?=y)"與"x(?!y)","x" 的部分是要取得的開頭,"y"的部分則為結尾,"?="表示符合的結尾是結果,"?!"代表的是不符合的結尾是結果,聽起來有點難懂,可以利用 [ coding.tools ] 正則表達式在線測試工具 來實驗,實驗結果如下
使用"?="的寫法 |
使用"?!"的寫法 |
在使用"?="的寫法可以看到"That"並不會被當結果,只有"This"被當成結果,且結果只有"Th"的部分,並不包含"is",所以這個語法可以把它解釋成過濾特定結尾,"?!"的寫法其實就是相反的邏輯,不符合的結尾都是結果,所以只有"That"是結果,這兩個語法可以搭配"|"來過濾不同的結尾。