gpt4 book ai didi

regex - 查找文本并将其替换为斜杠字符

转载 作者:行者123 更新时间:2023-12-02 20:35:56 25 4
gpt4 key购买 nike

所以我在 Stackoverflow 上四处查看,我了解到查找和替换文本的工作原理如下:

perl -pi -w -e 's/www.example.com/www.pressbin.com/g;' *.html

但是,如果我要查找和替换的文本是包含斜杠的文件路径怎么办?那我该怎么办呢?

perl -pi -w -e 's/path/to/file/new/path/to/file/g;' *.html

最佳答案

使用 Perl 正则表达式,您可以使用除空格之外的任何字符作为正则表达式分隔符,尽管

  • \w 中的字符(因此 s xfooxbarxs/foo/bar/ 相同)和
  • 问号(隐式激活仅匹配一次行为,已弃用)和
  • 单引号'...'(变量插值轮次)

应该避免。我更喜欢花括号:

perl -pi -w -e 's{path/to/file}{new/path/to/file}g;' *.html

分隔字符可能不会出现在各个字符串内,除非它们是平衡大括号或正确转义的。所以你也可以

perl -pi -w -e 's/path\/to\/file/new\/path\/to\/file/g;' *.html

但这实在是太丑陋了。

当使用大括号/括号等时,正则表达式和替换之间可以有空格,从而允许像这样的漂亮代码

$string =~ s {foo}
{bar}g;

此上下文中另一个有趣的正则表达式选项是 quotemeta 函数。如果您的搜索表达式包含许多通常会被解释为具有特殊含义的字符,我们可以将该字符串包含在 \Q...\E 内。所以

m{\Qx*+\E}

匹配精确的字符串x*+,即使包含*、'+'或|等字符。

关于regex - 查找文本并将其替换为斜杠字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12238384/

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