Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP reg_ex在字符串中查找多个单词_Php_Regex_Preg Match - Fatal编程技术网

PHP reg_ex在字符串中查找多个单词

PHP reg_ex在字符串中查找多个单词,php,regex,preg-match,Php,Regex,Preg Match,根据情况的性质,我需要1种模式来执行以下操作: 创建应该找到的模式 单字精确匹配 两个单词组合的精确匹配 可以在字符串中找到的两个单词的匹配 我的问题是#3。目前我有: $pattern = '/\s*(foo|bar|blah|some+text|more+texted)\s*/'; 我怎样才能附加到这个模式中,在字符串的任意组合中找到“坏文本” 有什么想法吗?有几种方法可以做到这一点,但这里有一个简单的方法 $array_needles = array("needle1", "needle

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

创建应该找到的模式

  • 单字精确匹配
  • 两个单词组合的精确匹配
  • 可以在字符串中找到的两个单词的匹配 我的问题是#3。目前我有:

    $pattern = '/\s*(foo|bar|blah|some+text|more+texted)\s*/';
    
    我怎样才能附加到这个模式中,在字符串的任意组合中找到“坏文本”


    有什么想法吗?

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

    $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
    }
    

    要检查字符串中是否有单词错误请使用正则表达式

      /\bbad\b/
    
      /(?=.*\bbad\b)(?=.*\btext\b)/
    
    要检查短语错误文本的字符串,请使用regex

      /\bbad text\b/
    
      /\b(bad|text)\s+(?!\1)(?:bad|text)\b/
    
    要检查字符串中是否有任何单词组合不正确文本,请使用正则表达式

      /\bbad text\b/
    
      /\b(bad|text)\s+(?!\1)(?:bad|text)\b/
    
    要检查字符串中是否存在单词坏的文本,请使用正则表达式

      /\bbad\b/
    
      /(?=.*\bbad\b)(?=.*\btext\b)/
    

    很不清楚你在这里找什么。你能再说一遍这个问题吗?谢谢,这正是我想要的@user1724102-然后,请单击左侧我的答案旁边的复选标记(带箭头的数字将变为绿色),接受我的答案。非常感谢。