我想獲取所有不以1,2,12,34開頭的文本。
我寫正則表達式 - 選擇所有不以特定數字開頭的文本
^((?!1|2|12|34).)*$
(^斷言位置在一行的開始)
爲:
https://regex101.com/r/gI6sN8/14
問題
- 它也不會選擇文本中間有1或2個(「AB 1 CD」)。
- 它也不會選擇13(因爲它從1開始)
我怎麼能限制它
我想獲取所有不以1,2,12,34開頭的文本。
我寫正則表達式 - 選擇所有不以特定數字開頭的文本
^((?!1|2|12|34).)*$
(^斷言位置在一行的開始)
爲:
https://regex101.com/r/gI6sN8/14
問題
我怎麼能限制它
正如評論中所述,您需要文字邊界和正確的括號位置
^(?!(?:1|2|12|34)\b)(.*)$
您還可以使用\D
^(?!(?:1|2|12|34)\D)(.*)$
在你的正則表達式
^((?!1|2|12|34).)*$
你發現以上任何替代1|2|12|34
是否是在每個位置正確。這就是爲什麼它不匹配AB 1 CD
'\ b'做什麼?我懷疑它是否會在字符串的開頭匹配。 – 2016-08-20 16:58:30
@torazaburo你是對的。更新它 – rock321987
謝謝,這也過濾13.這不是我正在尋找的行動@ hek2mgl解決了它。 – Jeb
我認爲它的定位** ['括號'](https://regex101.com/r/gI6sN8/15)** – rock321987
也需要** ['\ b'](https:// regex101 .com/r/gI6sN8/17)** – rock321987
通過「get」,你的意思是「匹配」? – 2016-08-20 16:57:21