【问题标题】:How to can check the string exists in sentence or not [duplicate]如何检查字符串是否存在于句子中[重复]
【发布时间】:2020-03-02 13:51:23
【问题描述】:

如何检查 PHP 字符串中的值是否存在 而什么时候使用 strpos() 函数然后我在签入字符串时遇到问题 假设我有一个字符串我是程序员 然后如果我检查 Pro 然后 strpos 显示它的索引值

<?php
$string="I m Programmer";
$found="Prog";
echo strpos($string,$found);
?>

strpos() 显示 Porg 索引值,而我想要如果 Prog 字存在于字符串中,则显示索引值,如果不存在则不显示任何内容,因为我想要 match 程序员工作完全不是Prog

【问题讨论】:

  • 所以基本上你想检查完整的单词?喜欢“程序员”而不是“Prog”?

标签: php


【解决方案1】:

您可以使用pre_match() 函数来完成,因为i 它会忽略区分大小写。有关更多详细信息,您可以在此处阅读pre_match 文档。 pre_match

<?php
// for insensitive string
function insensitive($val,$str){
    if(preg_match("/\b$val\b/i",$str) ){
      return 1;
    }else{
      return 0;
    }
}
// for case sensitive string
function sensitive($val,$str){
    if(preg_match("/\b$val\b/",$str) ){
      return 1;
    }else{
      return 0;
    }
}
$string = 'I m programmer'; 
$found="Programmer"; 

// call function like this to get result
echo insensitive($found,$string);
echo sensitive($found,$string);
?>

【讨论】:

    【解决方案2】:

    你也可以使用strpos,只检查搜索到的字符是否在a~z之后。

    $str = strtolower($str);
    $search = strtolower($search);
    $is_in = (false !== ($pos = strpos($str,$search))) && !in_array($str[$pos + strlen($search)],['a','b','c',...'z']);
    

    【讨论】:

      【解决方案3】:

      您可以使用PHP preg_match

      <?php
      $string = 'I m Programmer';
      $found="Prog";
      if ( preg_match("~\b$found\b~",$string) ){
          echo "Matched";
      }else{
         echo "No Match";
      }
      ?>
      

      不区分大小写:

      if ( preg_match("~\b".strtolower($found)."\b~",strtolower($string)) ){
          echo "Matched";
      }else{
         echo "No Match";
      }
      

      【讨论】:

      • 它区分大小写我不想要这个
      • 固定@MuGhalProgrammer
      【解决方案4】:

      试试 -

      $string = 'I m Programmer'; //  "I m Programmer." - will work too
      $found="programmer"; // lower case
      echo preg_match("/\b$found\b/i",$string) ? 'Matched' : 'No Match';
      

      i 修饰符表示不敏感。不区分大小写匹配

      preg_match()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-01
        • 2011-07-30
        • 2022-11-19
        • 2012-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多