我的preg_replace有问题。我需要为包含更多@ .. @的字符串执行此操作,例如我有:
@CN@ This is a test. Big test @DATE@ and @DATE_END@.
现在我想获得一个列表:
我的代码:
$pattern = '/@[_a-zA-Z0-9]*@/';
preg_match_all($pattern,'',$aData[$i]['tags']);
@CN@,@DATE@,@DATE_END@
在@ ... @之间可以是多个表达式。
答案 0 :(得分:1)
将preg_match_all
与implode
功能一起使用。
$str = "@CN@ This is a test. Big test @DATE@ and @DATE_END@.";
preg_match_all('/@[^@]*@/', $str, $match);
echo implode(",", $match[0]);
上面的implode函数有助于使用逗号作为分隔符连接数组元素。
输出:
@CN@,@DATE@,@DATE_END@
答案 1 :(得分:0)
我想你想要使用preg_match_all:
preg_match_all('/(@[^@]+@)/', $input, $match)