我遇到过如下代码:
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/