正则表达式:数学和替代字符串?

时间:2018-06-11 18:50:07

标签: regex

我有正则表达式匹配表达式的一部分;我被困在需要匹配符号的部分上,并用相反的符号替换它们。所以,如果我得到一个输入字符串<我必须用>替换它和< =替换为> =反之亦然....但我很困惑,不知道该怎么做。

我只能接受一个有这些有效运算符之一的字符串。

到目前为止,这是我的正则表达式:

(\w+)(\s)*([(?P<less><)?(?P<greater>>)?(?P<gEqual>>=)?(?P<lEqual><=]) . 
(\s*)*(\w+)

^^问题是它与&lt; =或&gt; =

不匹配

这是我的替换字符串,显然不完整,但我甚至无法将其解决为部分问题:

\5\b<\b(?=>)\1

另外, 我正在使用regex101.com检查我的东西。 请帮忙!

a&lt; b应该变成b>一个 asda&lt; = c应该变成c&gt; ASDA

1 个答案:

答案 0 :(得分:0)

我认为这应该能够匹配所有运营商:

(?<less><(?!=))|(?<lEqual><=)|(?<greater>(?<!=)>)|(?<gEqual>=>)

它使用负向前看以防止捕获小于或等于&#39; “少”中的运算符&#39;捕获组。同样,它使用负面外观来防止捕获大于或等于&#39;运营商在&#39;大于&#39;捕获组。

AFAICT它至少与您的示例相符,您可以在https://regex101.com/r/GvB7nA/1

看到