PHP,我想用正则表达式得到数组(@中肖,@尖,@地s_3法,@在有)这四个数组元素,不包含@空格。
$str = '@中肖 @尖 困@地s_3法 @在有 @ ';
preg_match_all('/@+\s/', $str, $matchs);
想得到@与空格之间的xxx(可为中文与英文,下划线等符号)
我这样写是错了。求大侠帮手。谢谢了!
当然有其他方法可以得到数组(@中肖,@尖,@地s_3法,@在有)也行,求赐教!
------解决方案--------------------
$str = '@中肖 @尖 困@地s_3法 @在有 @ ';
preg_match_all("/@\S{1,}\s/", $str, $matchs);
\S (大写) 表示所有非空白字符, 后跟 {1,} 表示必须至少有一个匹配字节
------解决方案--------------------
我大意了,没有必要再在\S后跟一个\s,这样做反倒画蛇添足
------解决方案--------------------
- PHP code
[liangdong@bb-browser-test00.vm.baidu.com php_project]$ php main.php Array ( [0] => @中肖 [1] => @尖 [2] => @地s_3法 [3] => @在有 ) [liangdong@bb-browser-test00.vm.baidu.com php_project]$ cat main.php <?php $content = "@中肖 @尖 困@地s_3法 @在有 @ "; $n_match = preg_match_all('/@.* /U', $content, $matches); if ($n_match) { $res = array_filter($matches[0], function($item){return trim($item, "@ ");}); print_r($res); } ?>