Skip to main content
 首页 » 编程设计

php之如何使用正则表达式替换字符串中的数字

2025年05月04日24cyq1162

我对正则表达式很陌生,所以我在替换字符串中的数字时感到困惑。

a="12ab34cde56"  

我想用 12abXXcde56 替换它

b="abc1235ef" 

我想用abcXXXXef替换它

c="1ab12cd" 

我想用1abXXcd替换它

我正在用 python 和 php 尝试这些,但没有成功。这就是我的想法:

^([0-9]+)([a-z]+)(.*)([a-z]+)([0-9]+)$ 

请您参考如下方法:

您可以使用此正则表达式来捕获所有非前导或尾随的数字:

(?<!^|\d)\d+(?!$|\d) 

然后在 Python 中,您可以提供一个函数,用相应数量的 X 替换匹配项。

对于 PHP,您可以启用 PREG_OFFSET_CAPTURE 以了解匹配项的位置,并循环遍历匹配项列表并处理它们。

请注意,使用上面的正则表达式 "5 ddds" 将更改为 "X ddds"