正则表达式为!=和= in使用相同的模式

时间:2016-10-28 15:14:30

标签: regex

我有这个:

a!=b

b=b

我希望两种情况都有一种模式。 我设置了

(.\*)(!=|=)(.\*)

但即使我把它放在第一位,=代替!=。 所以我得到group1 = a!和group2 = b

任何简单的解决方案?

4 个答案:

答案 0 :(得分:3)

^\w!?=\w$

^:开始字符串。

$:结束字符串。

\w:字母或数字字符(1次)。

!?:字符!为零或1次。

=:字符=

希望这有帮助!

答案 1 :(得分:2)

只需在第一个星号后添加?即可使其变得懒惰/非贪婪:

(.*?)(!=|=)(.*)

答案 2 :(得分:0)

使用不匹配运算符^

([^!=]+)(!?=)([^!=]+)

答案 3 :(得分:0)

如果你想使用相同的模式结构,那么你必须使用非贪婪的算子

(.*?)(!=|=)(.*)
   ^--- Here

但是,您仍然可以缩短模式并使用它:

(.*?)(!?=)(.*)

<强> Working demo

此外,如果您想在操作员侧匹配至少一个操作数,您可以使用:

(.+?)(!?=)(.+)

enter image description here