使用这个example,我试图只匹配类似C的代码中的运算符,以便在它之前和之后添加空格
例如,a+b
应该变为a + b
,但a + b
不应变为a + b
。另一个棘手的问题是我不应该在-2
这样的负数的情况下添加空格。当然,我需要了解所有异常,例如// work-around
等评论中的文字。
这是我正在处理的正则表达式:
(?!= |=|&|\||%)(\+|-)(?! |=|\1)
不幸的是,负面观察并不像预期的那样有效。我该如何解决?
答案 0 :(得分:1)
这只是为了帮助你的正则表达式 第一个(负面的)前瞻,应该是(负面的)后视。
我认为这不会有助于解析数学符号。
http://regex101.com/r/lX3aF6/1
# (?<!=[ ])(?<![=&|%])(\+|-)(?!\1|[ =])
(?<! = [ ] )
(?<! [=&|%] )
( \+ | - )
(?! \1 | [ =] )