php preg_替换用法-

php preg_替换用法-,php,preg-replace,Php,Preg Replace,这是我第一次尝试使用正则表达式,请耐心等待 $s="r1=r2+robby + ara"; $s1=preg_replace ( "/r[0-9]/","ar?b",$s); 我想使用php preg_replace函数来转换如下字符串: "r1=r2+robby+ara" $s="r1=r2+robby + ara"; $s1=preg_replace ( "/r[0-9]/","ar?b",$s); 进入 $s="r1=r2+robby + ara"; $s1=preg_repl

这是我第一次尝试使用正则表达式,请耐心等待

$s="r1=r2+robby + ara";

$s1=preg_replace ( "/r[0-9]/","ar?b",$s);
我想使用php preg_replace函数来转换如下字符串:

"r1=r2+robby+ara"
$s="r1=r2+robby + ara";

$s1=preg_replace ( "/r[0-9]/","ar?b",$s);
进入

$s="r1=r2+robby + ara";

$s1=preg_replace ( "/r[0-9]/","ar?b",$s);
  • 因此,对于每一次出现的“r”后跟一个整数,我想在它前面放一个“a”,在它后面放一个“b”
我已经找到了搜索部分,但没有找到替换部分-下面的问号表示我遇到了问题。有没有办法“记住”由[0-9]找到的整数并在替换字符串中使用它

$s="r1=r2+robby + ara";

$s1=preg_replace ( "/r[0-9]/","ar?b",$s);

谢谢你

你很接近,但需要括号:

$s="r1=r2+robby + ara";

$s1=preg_replace ( "/r[0-9]/","ar?b",$s);
$s="r1=r2+robby + ara";
$s1=preg_replace ( "/r([0-9])/","ar$1b", $s); // produces ar1b=ar2b+robby + ara
告诉PHP捕获介于两者之间的任何内容(数字)。替换中的
$1
告诉PHP在该位置使用该值(数字)

$s="r1=r2+robby + ara";

$s1=preg_replace ( "/r[0-9]/","ar?b",$s);
注意:如果您的问题真的这么简单,您不需要括号,可以使用
$0
,这意味着“整个匹配部分”,如xdazz的回答:

$s="r1=r2+robby + ara";

$s1=preg_replace ( "/r[0-9]/","ar?b",$s);
$s1=preg_replace ( "/r[0-9]/","a$0b", $s); // produces ar1b=ar2b+robby + ara
我会:

$s="r1=r2+robby + ara";

$s1=preg_replace ( "/r[0-9]/","ar?b",$s);
$str_out = preg_replace('/\b(r\d)\b/', 'a$1b', $str_in);
\b
是一个单词边界,在这种情况下,它阻止替换
xr1y

$s="r1=r2+robby + ara";

$s1=preg_replace ( "/r[0-9]/","ar?b",$s);