Preg替换以添加数字

Preg replace to add number

我试图找到一种方法将数字添加到 XML 中的模式。

XML 中的字符串看起来像:

Blabla blabla ${bâtiment} : blabla

最后我要

Blabla blabla ${bâtiment1} : blabla

我发现了这样的东西:

preg_replace('/$\{(\w)\w+\}/', '${\1#' . $i . '}', $cloneXML);

但是不行,结果只包含第一个字母:

Blabla blabla ${b1} : blabla

我找不到任何东西来表达所有的意思:/

感谢您的帮助

对 unicode 使用 PCRE 修饰符 /u,并在替换中将引用放在括号内,这样它就不会与变量 $i 中的数字连接起来。此外,您的正则表达式没有捕捉到整个单词,所以也许这就是您要查找的内容:

<?php

$cloneXML = 'Blabla blabla ${bâtiment} : blabla';
$i = 42;

print preg_replace('/$\{(\w*)\}/u', '{' . $i . '}', $cloneXML);
// => Blabla blabla {bâtiment42} : blabla

查看输出:3v4l.org/k8mIQ