gpt4 book ai didi

c++ - 在 C++ 中使用 Perl + Regex 将#define 更改为#undef

转载 作者:行者123 更新时间:2023-11-28 06:02:39 29 4
gpt4 key购买 nike

在一个大的配置文件中,我有类似的东西:

#define DO_THIS_NOW // Set DO_THIS_NOW before running y

我想要一个简单的 perl 单行代码,可以将其更改为:

#undef DO_THIS_NOW

然而,有时它实际上可能有一个或两个额外的空间:

#define   DO_THIS_NOW // Set DO_THIS_NOW before running y

我正在寻找的解决方案是:

perl -MPOSIX -pe's/define DO_THIS_NOW/undef DO_THIS_NOW/e' file.h > file.h.2

但我似乎无法完全正确地理解语法。

这是执行此操作的最佳方法吗?或者有其他明显的方法吗?我的最终目标是将 perl 单行代码放入 bash 脚本中。

最佳答案

您可以使用 \s+ 语法匹配一个或多个空白字符。

perl -pe 's/define\s+DO_THIS_NOW/undef DO_THIS_NOW/' file.h > file.h.2
  • \s 匹配单个空格,如空格、制表符等。
  • + 修饰符匹配它后面的一个或多个

/e 修饰符将替换字符串作为 perl 代码求值,并用求值结果替换匹配的文本。没有必要进行此替换。

查看 perldoc perlretut 了解更多信息。

关于c++ - 在 C++ 中使用 Perl + Regex 将#define 更改为#undef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32956013/

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