[英]negative lookahead regex to not match a certain pattern
我試圖不匹配一個字符串,如果它連續包含四個點或更多。 這是我當前的正則表達式。
^(\s*(CODE)\s?([0-9]{1,2}))(.(?!\.\.\.\.*))*$
所以,我的正則表達式應該匹配
CODE 7 Newton
但這不匹配
CODE 7 Newton ....................
我究竟做錯了什么? 它與所有點都匹配,即使前瞻性也很差!
您可以使用負前瞻使用此reegx:
^CODE\s+\d+(?!.*\.{4})
(?!.*\\.{4})
為負前瞻,它斷言 (不匹配)我們在當前位置之前沒有4個DOT。
PS: .*
是貪婪的,確實會消耗所有文本,直到完全斷言為止,但是它使正則表達式引擎回溯4個位置以在比賽結束時匹配4個點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.