文字列が"Hello I went to the store today"
あり、一致する配列がある場合
$perfectMatches = array("i went","store today");
その両方に一致する必要があります。(配列は非常に大きくなる可能性があるため、1 つの preg_match で行うことをお勧めします)
編集:これが機能しました!ありがとう!
preg_match_all("/\b(" . implode($perfectMatches,"|") . ")\b/i", $string, $match1)
また、説明が難しい別の正規表現も必要です。配列があるとします
$array = array("birthday party","ice cream");//this can be very long
「誕生日」と「パーティー」、および文字列のどこにでもある場合、文字列に一致する正規表現を取得することは可能ですか?
では、「こんにちは、今日は私の誕生日で、パーティーをするつもりです」と一致するはずですか? しかし、1 preg_matchでも「アイスクリーム」とは?
ありがとう
編集:例...
ユーザーがアイテムの説明を送信しましたが、スパムをチェックしたいと考えています。ほとんどのスパム投稿には「パーソナル チェック」や「ホット ディール」などのフレーズが含まれていることがわかっているので、これらすべてのフレーズのリストを取得し、説明と合わせて確認したいと思います。説明にリスト内のフレーズが含まれている場合、スパムとしてマークされます。このシナリオは、私が望む最初の正規表現に当てはまります。
2 番目の正規表現は、一部のスパム投稿のどこかに「失う」「体重」「速い」という単語が含まれていることを知っている場合です。これらの 3 つの単語は説明に含まれている必要はありません。したがって、これらのフレーズのリストを取得し、「すぐに体重を減らす」、「クレジット カードが必要です」と説明を確認すると、スパムとしてマークできます。