我有以下字符串:
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做到这一点?
答案 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})(;)