我試圖在任期結束時匹配加號的任何事件,除非它正好發生兩次。例如,c+
和中的加號應該匹配,但不是的c++
。如何匹配字符的任何出現,除非出現兩次?
顯然,天真的方法\+{1}$|\+{3,}$
不起作用。你有更好的主意嗎?
我試圖在任期結束時匹配加號的任何事件,除非它正好發生兩次。例如,c+
和中的加號應該匹配,但不是的c++
。如何匹配字符的任何出現,除非出現兩次?
顯然,天真的方法\+{1}$|\+{3,}$
不起作用。你有更好的主意嗎?
您可以使用負先行使用正則表達式:
\b\+(?:\+{2,})?(?!\+)
正則表達式破碎:
\b
- 斷言字邊界\+
- 匹配字面+
(?:\+{2,})?
- 可選匹配2個或更多+
(?!\+)
- 負前瞻,以確保沒有+
提前阻止++
我只需要匹配加號,所以我會接受您的答案。謝謝! – phly
我喜歡在這裏建立我的正則表達式:regex builder 貌似這個人會搶C +,而不是C++和C有3個或更多+跡象
(c\+{1}|(\+){3,})
^[^+]*(?:\+|[+]{3,})$
將匹配您的連接以及在你設計的例子中c
的位置。
向第一個應用向前看以前沒有'+':'(?<!\ +)\ + $' –
@SebastianProske'(?<!'它看起來在後面 –
@BahramdunAdil Yep,我的大腦處於工作模式 –