regex - 珀尔。正则表达式只工作一次

标签 regex perl

我需要使用正则表达式处理字符串并更改 x->y 如果是数字。

字符串 :2x2x2 2x 2x2x 2x2x2x2x2
正则表达式 :s/([0-9])x([0-9])/$1y$2/g

my $string = "2x2x2 2x 2x2x 2x2x2x2x2";

$string =~ s/([0-9])x([0-9])/$1y$2/g;

print "$string\n";

我期望:2y2y2 xx 2x 2y2x 2y2y2y2y2
但结果:2y2x2 2x 2y2x 2y2x2y2x2 (并非所有 2x2 都改变了)

我该怎么办?

最佳答案

试试下面的正则表达式:

s/(?<=\d)x(?=\d)/y/g

关于regex - 珀尔。正则表达式只工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12757696/

相关文章:

java - 正则表达式只匹配逗号而不是括号?

javascript - 限制用户输入小数点前7位和小数点后3位以上

python - 附加到字符串中找到的每个正则表达式匹配项 [Python]

linux - 从 perl 启动 bash 时命令失败,但从命令行启动时没有,权限问题

linux - grep 命令来计算 perl 中的警报

javascript - 为什么我不能在单词边界旁边使用重音字符?

php - 不以 2 个打开和关闭的大括号开始和结束的字符串的正则表达式

java - 如何查明我正在使用 Perl 的 Java 版本?

perl - 我可以使用 MooseX::Declare 在类之外定义函数吗?

algorithm - 将 (key,value) 数据转换为 csv 格式