【发布时间】:2010-06-23 16:00:20
【问题描述】:
小例子:
perl -e '$s="aaabbcc";$c=()=$s=~/a/g;print"$c\n$s\n"' (m//g) 输出
3
aaabbcc
而perl -e '$s="aaabbcc";$c=()=$s=~s/a/x/g;print"$c\n$s\n"' (s///g) 输出
1
xxxbbcc
我想同时做这两件事而不必先匹配:替换并知道替换的次数。显然,a s///g 不会返回标量上下文中的替换数——与 m//g 不同的是匹配匹配。这可能吗?如果是,怎么做?
perlre、perlvar 和 perlop 没有提供任何帮助(或者我只是找不到它)。
【问题讨论】:
-
对于那些通过标题通过网络搜索找到该帖子但问题涉及磁盘上编辑文件的人:我发布了其他问题stackoverflow.com/questions/57411792/…,问题是输出需要定向到
STDOUT。
标签: regex perl substitution