regex - Perl 正则表达式替换计数

标签 regex perl

是否可以指定要替换的最大匹配数。例如,如果匹配“Hello World”中的 'l',是否可以替换前 2 个 'l' 字符,而不是不循环替换第三个字符?

最佳答案

$str = "Hello world!";
$str =~ s/l/r/ for (1,2);
print $str;

我不明白循环有什么不好。

其实有一个方法:
$str="Hello world!"; 
$str =~ s/l/$i++ >= 2 ? "l": "r"/eg; 
print $str;

这是一个循环,因为当你这样做时 s///g 以一种循环的方式工作。但不是传统的循环。

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

相关文章:

regex - 匹配换行符 -\n 或\r\n?

javascript - 特定电话号码排列的正则表达式

perl - 如何实时跨平台将 perl 代码输出到 STDOUT/STDERR 和文件?

regex - 如何在两个已知标记之间进行最小匹配?

mysql - 替换在 mysql 和 mariadb 中不起作用的正则表达式

regex - grep --ignore-case --only

perl - Catalyst MVC 使用单个表单保存多个对象

perl - 为 ActiveState Perl 版本 5.6.1 build 629 安装 XML::LibXML Perl 模块

perl - 如何获取代码覆盖率的 MakeMaker 目标?

perl - 如何用 perl 写得更好