我正面临这个小正则表达式问题(flags:Global)
[-+*&|]
它意味着匹配例如此表达式中的+,但不匹配++或 - :
12 + 47 - i++ / --foo
然而,它与所有人相匹配。
我知道这个解决方案,但它很难看(需要重复三次):
[^-+*&|][-+*&|][^-+*&|]
或者
(?<![-+*&|])([-+*&|])(?![-+*&|])
任何更好(更短,更易读)的解决方案?
答案 0 :(得分:0)
这对我来说似乎更具可读性,但不是很多。
(?<![\+\-\*/\&\|])(?P<operator>[\+\-\*/\&\|])(?!(?P=operator))
匹配:
+ ++ - -- * ** / // & && | ||
^ ^ ^ ^ ^ ^
答案 1 :(得分:0)
[-+*&|]{1,3}
您可以使用{min,max}
来定义最小和最大出现次数。