ホームページ >バックエンド開発 >PHPチュートリアル >PHPで、正規表現を使用して、@スペースを含まない配列の4つの配列要素(@中小、@jian、@地s_3法、@在有)を取得したいと考えています。

PHPで、正規表現を使用して、@スペースを含まない配列の4つの配列要素(@中小、@jian、@地s_3法、@在有)を取得したいと考えています。

WBOY
WBOYオリジナル
2016-06-13 13:14:34942ブラウズ

PHPで、正規表現を使用して、@スペースを含まない4つの配列要素(@中小、@jian、@地s_3法、@在有)を取得したいと考えています。
$str = '@中小@狠狠@地s_3法@在有@ ';
preg_match_all('/@+s/', $str, $matchs);
@を取得したいとスペース 間のxxx (中国語と英語、下線やその他の記号も可)
この書き方は間違っていました。英雄たちに助けを求めます。ありがとう!

もちろん配列を取得する他の方法(@中小、@jian、@地s_3法、@在有)もありますので、アドバイスをお願いします。

-----解決策---------
$str = '@中小@狠狠@地s_3法@在有@ ';
preg_match_all("/@S{1,}s/", $str, $matchs);

S (大文字) は空白以外のすべての文字を意味し、その後に {1,} が続くことは、少なくとも 1 つの一致するバイトが存在する必要があることを意味します
------解決策------------------
不注意でした。S の後に s を付ける必要はありません。
------解決策------------------

PHP コード
[liangdong@bb-browser-test00.vm.baidu.com php_project]$ php main.php
配列
(
    [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>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。