Php preg_替换为属性值

Php preg_替换为属性值,php,preg-replace,Php,Preg Replace,我使用preg_replace来解码bbcode,我使用(.*?来获取属性值 我想用字体大小:\10px;(字体大小:(.*0px;)因此,例如,如果属性值为7,则字体大小将为70。但它却认为我想要\10的值。如何将属性值和0分开 是否可以像“font-size:”。\1.0px;'或类似于将属性值与零分开的方法?\${1}0是文档中描述的解决方案 [编辑] 我尝试了所有可能的反斜杠,不得不说。。对我来说,这毫无意义 echo preg_replace('/(2.)/', '\\${1}', '

我使用preg_replace来解码bbcode,我使用
(.*?
来获取属性值

我想用
字体大小:\10px;(字体大小:(.*0px;)
因此,例如,如果属性值为7,则字体大小将为70。但它却认为我想要\10的值。如何将属性值和0分开


是否可以像
“font-size:”。\1.0px;'
或类似于将属性值与零分开的方法?

\${1}0
是文档中描述的解决方案

[编辑]

我尝试了所有可能的反斜杠,不得不说。。对我来说,这毫无意义

echo preg_replace('/(2.)/', '\\${1}', '12345');
输出
1${1}45

但我找到了一个解决办法:


$a=
\${1}0
是文档中描述的解决方案

[编辑]

我尝试了所有可能的反斜杠,不得不说。。对我来说,这毫无意义

echo preg_replace('/(2.)/', '\\${1}', '12345');
输出
1${1}45

但我找到了一个解决办法:

$a=适用于此文本:

$str = <<< EOD
[size="4"]test1[/size]
[size="4]test2[/size]
[size=4"]test3[/size]
[size=4]test4[/size]
EOD;
$pattern = '@\\[size=("?)(\\d++)\\1\\](.*?)\\[/size\\]@s';
$str=适用于此文本:

$str = <<< EOD
[size="4"]test1[/size]
[size="4]test2[/size]
[size=4"]test3[/size]
[size=4]test4[/size]
EOD;
$pattern = '@\\[size=("?)(\\d++)\\1\\](.*?)\\[/size\\]@s';

$str=天哪。。。PHP手册让人很困惑

关于此代码:

echo preg_replace('/^(1)(2)(3)(4)(5)$/', $r, '12345');
预期产出:

12345!!12345!!
使用heredoc时:

$r = <<< EOD
$0!!\${1}2\${3}4$5!!
EOD;
$r = '$0!!${1}2${3}4$5!!';

是的,不需要反斜杠

天哪。。。PHP手册让人很困惑

关于此代码:

echo preg_replace('/^(1)(2)(3)(4)(5)$/', $r, '12345');
预期产出:

12345!!12345!!
使用heredoc时:

$r = <<< EOD
$0!!\${1}2\${3}4$5!!
EOD;
$r = '$0!!${1}2${3}4$5!!';

是的,反斜杠是不必要的

'\2'
我已经尝试过了,但它输出的是
应该是
'\\2'
似乎不起作用,就像使用一个反斜杠时一样。关于反斜杠的奇怪PHP行为。将PHP与C(或其他著名语言)进行比较。[PHP][C]@Matmarbon好吧,看来这次我得到了不同的输出,带有3个反斜杠的输出变成了“font size:\70px;”<代码>'\2'
我已经尝试过了,但是它输出了
应该是
'\\2'
似乎不起作用,就像使用一个反斜杠一样。关于反斜杠的奇怪PHP行为。将PHP与C(或其他著名语言)进行比较。[PHP][C]@Matmarbon好吧,看来这次我得到了不同的输出,带有3个反斜杠的输出变成了“font size:\70px;”Post sample inout和您的preg\U replace call.preg\U replace call=
'/\[size\=”?(.*?)?“\](.*?\[\/size\]/ms'
替换为=
'\\2'
样本输出=
blalba
(假设值为7)请提供一个示例输入,以便我可以尝试您的示例并向您提出建议。发布示例输入和您的preg\u replace call.preg\u replace call=
'/\[size\=“?(.*????”)(.*?\[\/size\]/ms'
replace with=
'\\2'
示例输出=
blalba
(假设值为7)请提供一个样本输入,以便我可以尝试您的样本,并向您建议一些东西。