我有这个:
a!=b
b=b
我希望两种情况都有一种模式。 我设置了
(.\*)(!=|=)(.\*)
但即使我把它放在第一位,=
代替!=
。
所以我得到group1 = a!和group2 = b
任何简单的解决方案?
答案 0 :(得分:3)
^\w!?=\w$
^
:开始字符串。
$
:结束字符串。
\w
:字母或数字字符(1次)。
!?
:字符!
为零或1次。
=
:字符=
。
希望这有帮助!
答案 1 :(得分:2)
只需在第一个星号后添加?
即可使其变得懒惰/非贪婪:
(.*?)(!=|=)(.*)
答案 2 :(得分:0)
使用不匹配运算符^
:
([^!=]+)(!?=)([^!=]+)
答案 3 :(得分:0)
如果你想使用相同的模式结构,那么你必须使用非贪婪的算子
(.*?)(!=|=)(.*)
^--- Here
但是,您仍然可以缩短模式并使用它:
(.*?)(!?=)(.*)
<强> Working demo 强>
此外,如果您想在操作员侧匹配至少一个操作数,您可以使用:
(.+?)(!?=)(.+)