gpt4 book ai didi

c++ - 正则表达式在 C++ 代码中的 '=' 周围添加空格,我做错了什么?

转载 作者:行者123 更新时间:2023-11-30 02:01:13 24 4
gpt4 key购买 nike

我想创建一个正则表达式,它允许我在 C++ 代码中的赋值运算符周围添加空格(因为我更喜欢这种风格),例如这样

x=something

成为

x = something

但是

if(y==x)

不会变成

if(y = = x)

等等,包括!= , <= , >=

我对正则表达式比较陌生,尝试过以下方法:

(?<![\s=])(=)(?!=)

我认为这会是一个很好的开始,但这似乎不匹配。有人可以在这里解释一下我对正则表达式不了解的地方吗?

编辑

使用在 Code::Blocks IDE 中不匹配的正则表达式的示例

Code::BLocks regex attempt

最佳答案

尝试这样的事情:(?<![<>=!])\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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com