我有以下数据,其中
{n}
表示占位符。{n}{n}A{n}{n}A{n}
{n}A{n}{n}{n}{n}A
{n}{n}A{n}A{n}{n}
{n}{n}{n}A{n}A{n}B
{n}A{n}{n}B{n}{n}
A{n}B{n}{n}{n}{n}
我想要用例如字母C
替换在两个A字符之间的每个占位符。为此,我编写了以下正则表达式,并使用preg_replace
函数。
$str = preg_replace('~(?<=A)(\{n\})*(?=A)~', 'C', $str);
问题在于它用一个 C
替换了两个A之间的所有实例。我该如何修复我的正则表达式或preg_replace
调用,以将每个占位符的实例替换为C
?
这应该是我的输出。
{n}{n}ACCA{n}
{n}ACCCCA
{n}{n}ACA{n}{n}
{n}{n}{n}ACA{n}B
{n}A{n}{n}B{n}{n}
A{n}B{n}{n}{n}{n}
但目前它输出的是这个。
{n}{n}ACA{n}
{n}ACA
{n}{n}ACA{n}{n}
{n}{n}{n}ACA{n}B
{n}A{n}{n}B{n}{n}
A{n}B{n}{n}{n}{n}
A{n}A{n}A
?是ACA{n}A
还是ACACA
? - Casimir et Hippolyte