好的,我有这个PHP脚本:
<?php
$stringz = "Dan likes to eat pears and his favorite color is green!";
$patterns = array("/pears/","/green/");
$string = preg_replace($patterns, '<b>\\1</b>', $stringz);
echo "<textarea rows='30' cols='100'>$string</textarea>";
?>
当我运行它时,我得到了这个:
Dan likes to eat <b></b> and his favorite color is <b></b>!
假设其中有一个单词...但它没有......
答案 0 :(得分:4)
那是因为你没有明确捕捉任何东西。当然,\\0
会捕获整个匹配项,但为了捕获特定部分,如果要使用\\1
,\\2
,\\3
,则需要使用捕获组,等。将$patterns
更改为:
$patterns = array("/(pears)/","/(green)/");
()
表示捕获组,并且在其中捕获的任何值都存储在引用\\n
中,其中\\n
引用1索引n
捕获组。
答案 1 :(得分:3)
更改\\1
的{{1}}。
答案 2 :(得分:0)
怎么样
$patterns = array("/(pears)/","/(green)/");
\\1
适用于主题,即括号中的任何内容。