ホームページ >バックエンド開発 >PHPチュートリアル >正規表現に関するアドバイスを引き続き求める

正規表現に関するアドバイスを引き続き求める

WBOY
WBOYオリジナル
2016-06-23 14:10:13891ブラウズ

$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] => 反反复复 ) 


通常のルールを変更する方法を教えてください

==============
実際には、 microと同じようなことをしたいだけです。ブログの@関数は、@の人を削除するために通常のルールを使用しています。これが当てはまらない場合、他のより良い実装方法はありますか。 ?

これを使用すると、
$str = "昨天 @测试 hiaaaa dd@测试 反反复复@好友2";
と似ています
このように、@ が最後に来ます。スペースがないかどうかを判断するために正規表現を使用できますか?


ディスカッションに返信 (解決策)

$str = "昨天 @测试 hiaaaa dd@测试 反反复复@好友2";$reg = "/(@\S+)/";$arr = preg_split($reg,$str,-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY );print_r($arr);
Array

(
[0] => 昨日
[1] => @test
[2] = > ; hiaaaa dd
[3] =>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。