4

PHPと正規表現を使用して簡単な単語ゲームを作成している場合、文字列に2つ以上の単語が必要な場合、どのように検索できますか?

まあ言ってみれば

"cat"
"dog"
"play" x 2

もしも

「猫犬遊び遊び」パス

「こんにちは、遊びをしている猫の犬」は合格せず、1つだけ「遊び」

「猫」は合格せず、犬も2倍の遊びもありません

「猫と犬が一緒に遊んだり、おじいちゃんと遊んだりしたい」パス

どうすれば正規表現と一致させることができますか?

4

2 に答える 2

7

探している正規表現は次のとおりです。

/(?=.*?\bcat\b)(?=.*?\bdog\b)(?=(.*?\bplay\b){2})^.*$/

説明:単語catdogおよびplay(2回​​)はテキストに任意の順序で表示できると思いますが、資格を得るにはそれらがすべて文に含まれている必要があります。上記の正規表現は、上記の条件が存在することを確認するために積極的な先読みを使用しています。

これが上記の正規表現のオンライン作業デモです

于 2012-06-03T13:16:17.047 に答える
2

試すpreg_match_all(/cat.+dog(.+play){2}/i,$str,$out);

于 2012-06-03T12:48:48.637 に答える