替换对应于正则表达式的字符串的出现

时间:2016-09-30 10:57:12

标签: php regex

我有以下字符串:

echo "At, U omz rqqx uf itqz kag'dq zqmd yq" | tr "AtUo" "OhIc"

我想替换“&”的出现然后是一些字母,并以“;”结束。

输出应为:

$a = "test1";
$b = "test 2";
$c = "test<3";
$d = "test&4";

我怎么能用PHP做到这一点?

3 个答案:

答案 0 :(得分:4)

在这种特殊情况下,您不需要正则表达式,很可能您需要的是解码HTML实体,并且可以使用html_entity_decode()完成,如:

$a = html_entity_decode("test1");
$b = html_entity_decode("test 2");
$c = html_entity_decode("test<3");
$d = html_entity_decode("test&4");

var_dump($a,$b,$c,$d);

答案 1 :(得分:2)

使用此:

$x = preg_replace('/&[a-z]+;/', ' ', $b);
echo $x;

答案 2 :(得分:1)

@ this.lau_的答案是最好的,但如果你想要正则表达式,试试这个

(\&)([a-z]{1,4})(;)