正则表达式用 bool 替换 bool 值

标签 regex perl

我正在处理最近从 X/Motif 转移到 Qt 的 C++ 代码库。我正在尝试编写一个 Perl 脚本,它将用 bool 替换所有出现的 Boolean(来自 X)。该脚本只是做了一个简单的替换。

s/\bBoolean\b/bool/g

有几个条件。

1) 我们的代码中有 CORBA 并且\b 匹配 CORBA::Boolean 应该 不是 被改变。
2)如果它被发现为字符串(即“Boolean”),则不应该匹配

更新:

对于#1,我使用了lookbehind
s/(?<!:)\bBoolean\b/bool/g;

对于#2,我使用了前瞻。
s/(?<!:)\bBoolean\b(?!")/bool/g</pre>

这很可能适用于我的情况,但以下改进如何?

3) 如果在字符串中间,则不匹配(感谢 nohat )。
4)如果在评论中不匹配。 (//或者/**/)

最佳答案

s/[^:]\bBoolean\b(?!")/bool/g



这不匹配 bool 值所在行开头的字符串,因为 [^:] 是“匹配不是 : 的字符”。

关于正则表达式用 bool 替换 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35178/

相关文章:

javascript - 如何用分号分隔逗号、分号和逗号分隔的短语?

java - 正则表达式帮助 : Excluding characters

perl - 我怎样才能得到perl的严格警告来识别开关?

perl - 使用 SOAP::Lite 服务 stub

windows - 如何使用 Perl 在 Windows 中获取没有文件名的路径?

java - 正则表达式删除字符串中给定的模式

regex - 替换事件电子邮件草稿正文中的字符串

python - 使用 python 的正则表达式比较和提取字母字符

perl - 为什么我不能在 Perl 打印后立即有一个文字列表切片?

perl 101,通过在数组变量上使用 $ 获取数组长度