regex - 正则表达式替换中的 Perl 尖括号

标签 regex perl

我遇到过如下代码:

my $string = "fo2345obar";
$string =~ s<(\d+)><$1\.>g;

我不明白尖括号在这种情况下是什么意思;我之前看到的所有替换都是以下形式:

$string =~ s/(\d+)/$1\./g;

尖括号是什么意思?

最佳答案

在 Perl 中,您可以使用任何您喜欢的定界符,因此以下都是等价的:

s/PATTERN/REPLACEMENT/
s=PATTERN=REPLACEMENT=
s,PATTERN,REPLACEMENT,

这在 sed 中也是可能的。

但是,在 Perl 中,一些定界符是特殊的,因为它们成对出现,例如

s{PATTERN}{REPLACEMENT}
s<PATTERN><REPLACEMENT>
s(PATTERN)[REPLACEMENT]

等等

关于regex - 正则表达式替换中的 Perl 尖括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60224547/

相关文章:

Java - 正则表达式 - 用星号替换地址

perl - 对 perl 数组使用像 grep 和 sed 这样的 unix 命令

perl - 如何在 Perl 中对整数进行符号扩展?

perl - 来自间接包含模块的命名空间污染

javascript - 需要正则表达式javascript来获取所有图像

Javascript正则表达式 - 匹配单词中间的大写/大写字母(在句子中)?

regex - 谷歌表格 : remove specific characters from string except decimal

node.js - 应用正则表达式时避免创建空格

perl - 我在哪里可以找到 Template Toolkit 的 'more advanced web toolkit'?

perl - <> 在 Perl 中有什么用?