我试图在任期结束时匹配加号的任何事件,除非它正好发生两次。例如,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,我的大脑处于工作模式 –