2017-11-25 102 views
1

這裏是一個正則表達式是這樣的:(JavaScript的)正則表達式匹配較長的項目

let exp = /^>=|>==|<=|<==/

當我使用exp匹配這樣的字符串:

let str = ">==abc"; str.match(exp); // >=

如何使其儘可能匹配項目,而不使用/^>==?/?現在我必須把>=放在>==之後,比如/>==|>=,但是我想讓它與位置無關。

+0

交替不是 「位置獨立」,左邊的第一個總是贏。如果你想保持這種變化,你可以嘗試排除未完成的符號序列的負向前瞻:'/(?:> = |> == | <=|<==)(?![<> =])/' –

回答

1

這種模式看起來多餘的,請使用下列之一:

^(<|>)={1,} 

https://regex101.com/r/E1yHVY/10


爲了獲得一個完整的匹配:

^(?:<|>)={1,} 
+0

我必須動態地構造常規迴歸,所以我只能這樣做。 – laoqiren

+1

@laoqiren:即使你必須動態地構建你的模式,沒有任何東西禁止在加入之前按長度對項目進行排序。 –