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

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

WBOY
WBOYOriginal
2016-06-13 13:14:34942Durchsuche

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);
}
?> <div class="clear">
                 
              
              
        
            </div>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn