作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个正则表达式,它允许我在 C++ 代码中的赋值运算符周围添加空格(因为我更喜欢这种风格),例如这样
x=something
成为
x = something
但是
if(y==x)
不会变成
if(y = = x)
等等,包括!=
, <=
, >=
我对正则表达式比较陌生,尝试过以下方法:
(?<![\s=])(=)(?!=)
我认为这会是一个很好的开始,但这似乎不匹配。有人可以在这里解释一下我对正则表达式不了解的地方吗?
编辑
使用在 Code::Blocks IDE 中不匹配的正则表达式的示例
最佳答案
尝试这样的事情:(?<![<>=!])\s*=\s*(?!=)
替换为 =
.
或
([^<>=!])\s*=\s*([^=])
替换为 \1 = \2
由于模式未锚定,因此需要两个环视断言。
实际上,您自己的正则表达式只是缺少 <>
在字符类中。我对它做了一点改进,请看演示。
第一个正则表达式的演示+解释:http://regex101.com/r/kU1hP2第二个正则表达式的演示+解释:http://regex101.com/r/lK1oQ3
备注:\s
匹配空格!
关于c++ - 正则表达式在 C++ 代码中的 '=' 周围添加空格,我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14338391/
我是一名优秀的程序员,十分优秀!