-1

情况的性质,我需要 1 模式来执行以下操作:

创建应该找到的模式

  1. 单个单词的完全匹配
  2. 2 个单词组合的完全匹配。
  3. 可以在字符串中找到的 2 个单词的匹配项。

我的问题是#3。目前我有:

$pattern = '/\s*(foo|bar|blah|some+text|more+texted)\s*/';

我怎样才能附加到这个模式,它会在字符串中的任何组合中找到“坏文本”。

有任何想法吗?

4

2 回答 2

1

使用正则表达式检查字符串中的单词错误

  /\bbad\b/

要检查字符串中的短语错误文本,请使用正则表达式

  /\bbad text\b/

要检查字符串中单词badtext的任何组合,请使用正则表达式

  /\b(bad|text)\s+(?!\1)(?:bad|text)\b/

要检查字符串是否存在单词badtext使用正则表达式

  /(?=.*\bbad\b)(?=.*\btext\b)/
于 2012-10-05T21:20:50.023 回答
0

有几种方法可以做到这一点,但这是一个简单的方法

$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
}
于 2012-10-05T21:04:00.120 回答