4

文字列が"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 つの単語は説明に含まれている必要はありません。したがって、これらのフレーズのリストを取得し、「すぐに体重を減らす」、「クレジット カードが必要です」と説明を確認すると、スパムとしてマークできます。

4

1 に答える 1