状況の性質上、次のことを行うには 1 つのパターンが必要です。
見つけるべきパターンを作成する
- 単語の完全一致
- 2 つの単語の組み合わせの完全一致。
- 文字列で見つかった 2 つの単語の一致。
私の問題は#3にあります。現在私は持っています:
$pattern = '/\s*(foo|bar|blah|some+text|more+texted)\s*/';
文字列内の任意の組み合わせで「悪いテキスト」を見つけるこのパターンに追加するにはどうすればよいですか。
何か案は?
状況の性質上、次のことを行うには 1 つのパターンが必要です。
見つけるべきパターンを作成する
私の問題は#3にあります。現在私は持っています:
$pattern = '/\s*(foo|bar|blah|some+text|more+texted)\s*/';
文字列内の任意の組み合わせで「悪いテキスト」を見つけるこのパターンに追加するにはどうすればよいですか。
何か案は?
単語の文字列を確認するには、正規表現を使用します
/\bbad\b/
文字列に不適切なテキストがないかどうかを確認するには、正規表現を使用します
/\bbad text\b/
単語badとtextの任意の組み合わせについて文字列をチェックするには、正規表現を使用します
/\b(bad|text)\s+(?!\1)(?:bad|text)\b/
文字列に悪い単語が含まれているかどうかを確認するには、正規表現を使用します
/(?=.*\bbad\b)(?=.*\btext\b)/
これを行うにはいくつかの方法がありますが、ここでは簡単な方法を示します
$array_needles = array("needle1", "needle2", etc...);
$array_found_needles = array();
$haystack = "haystack";
foreach ($array as $key=>$val) {
if(stristr($haystack, $val) {
//do whatever you want if its found
$array_found_needles[] = $val; //save the value found
}
}
$found = count($array_found_needles);
if ($found == 0) {
//do something with no needles found
} else if($found == 1) {
//do something with 1 needle found
} else if($found == 2) {
//do something with two needles found, etc
}