この正規表現は、これらの正規表現テスト ツールで正しく照合できます。 なぜ preg_match_all('/(@[a-z]+|[u4e00-u9fa5]+|[A-Z]+|[a-z]+|[a-z ]+|) に置くのでしょう。 [0-9]+)/is'、$a) は機能しませんか?テストツールではグローバル検索を選択できるのですが、選択できません。これが原因でしょうか? preg_match_all はグローバルに検索しないのでしょうか?
いくつかの質問
1. preg_match_all (normal、string、result)、上記のパラメータは 2 つだけです
2. パラメータを区切るためにカンマは全角で使用されていますか?
3. u を
正しい書き方は次のとおりです:
/(@[a-z]+|[x{4e00}-x{9fa5 }]+|[A-Z ]+|[a-z]+|[a-z]+|[0-9]+)/isu
正しい書き方は次のとおりです:
/(@[a-z]+|[x{ 4e00}-x{9fa5}]+ |[A-Z]+|[a-z]+|[a-z]+|[0-9]+)/isu
$res[0] $res[1] は同じです
正しい書き方は次のとおりです:
/(@[a-z]+|[x{4e00}-x{9fa5}]+|[A-Z]+ |[a-z]+ |[a-z]+|[0-9]+)/isu
@[a-z]+|[u4e00-u9fa5]+|[A-Z]+|[a-z]+|[a-z]+|[0-9]+
この u4e00-u9fa5 は Unicode でエンコードされた中国語の区間です。テスト ツールは Web ページの形式です
PHP の通常のエンジンはこの形式を認識できないため、当然正しい結果を得ることができません
正しい書き方は次のとおりです:
ありがとうございます。結果がわかりました。以前にこれらのオンライン テスト ツールを使用した理由を尋ねたいのですが、次のルールを内部でテストすると、正しい一致が得られますが、それをファイルに含めることはできますか?
@[a-z]+|[u4e00-u9fa5]+|[A-Z]+|[a-z]+|[a-z]+|[0-9]+
オンライン テストまたはブラウザ プラグインは php エンジンを使用しません。 JSエンジンの正規表現かもしれません