首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

PHP,小弟我想用正则表达式得到数组(@中肖,@尖,@地s_3法,@在有)这四个数组元素,不包含@空格

2012-09-18 
PHP,我想用正则表达式得到数组(@中肖,@尖,@地s_3法,@在有)这四个数组元素,不包含@空格。$str @中肖 @尖

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);}?> 

热点排行