继续求教正则表达式有关问题
继续求教正则表达式问题
结果是
想要的结果是
求教该如何修改正则?
==============
其实就是想把类似于微博里边@功能用正则来拆出@的人,规则是"@开头+人名+空格"不如此的话 有没有其他更好的实现方法?
如果用这个 类似于
这样在末尾@了好友,但是没有空格能否用正则判断?
------解决方案--------------------
(
[0] => 昨天
[1] => @测试
[2] => hiaaaa dd
[3] => @测试
[4] => 反反复复
[5] => @好友2
)
$str = "昨天 @测试 hiaaaa dd@测试 反反复复";
$reg = "/([^@]+(?=\s))/";
$arr = preg_split($reg,$str,-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY );
print_r($arr);
结果是
Array ( [0] => 昨天 [1] => @ [2] => 测试 [3] => hiaaaa [4] => dd@ [5] => 测试 [6] => 反反复复 )
想要的结果是
Array ( [0] => 昨天 @ [1] => 测试 [2] => hiaaaa dd@ [3] => 测试 [4] => 反反复复 )
求教该如何修改正则?
==============
其实就是想把类似于微博里边@功能用正则来拆出@的人,规则是"@开头+人名+空格"不如此的话 有没有其他更好的实现方法?
如果用这个 类似于
$str = "昨天 @测试 hiaaaa dd@测试 反反复复@好友2";
这样在末尾@了好友,但是没有空格能否用正则判断?
正则表达式
------解决方案--------------------
$str = "昨天 @测试 hiaaaa dd@测试 反反复复@好友2";Array
$reg = "/(@\S+)/";
$arr = preg_split($reg,$str,-1,PREG_SPLIT_DELIM_CAPTURE
------解决方案--------------------
PREG_SPLIT_NO_EMPTY );
print_r($arr);
(
[0] => 昨天
[1] => @测试
[2] => hiaaaa dd
[3] => @测试
[4] => 反反复复
[5] => @好友2
)