我对正则表达式很陌生,所以我在替换字符串中的数字时感到困惑。
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"
