簡體   English   中英

負前瞻正則表達式不匹配特定模式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM