【问题标题】:In PHP should I use a regular expression to match on this or something else?在 PHP 中,我应该使用正则表达式来匹配这个还是其他东西?
【发布时间】:2012-07-29 12:07:42
【问题描述】:

我需要能够检查变量是否包含字符串的第一部分。例如,“foobaz xy”。 “foobaz xy”之后的所有内容都可以忽略匹配。这也必须不区分大小写,并且 foobaz 和 xy 之间必须有空格。 PHP 中是否已经有一个内置函数可以处理这个问题,或者需要一个正则表达式来处理这个问题?最后但并非最不重要的一点是,如果不止一种方法具有更快的执行时间?谢谢!

【问题讨论】:

    标签: php string expression match


    【解决方案1】:

    它没有内置函数,但有一个微小的解决方法可以实现相同的目的。检查以下示例:

    $string = "foobaz xyewew";
    if (stripos($string, "foobaz xy") === 0) {
        echo "It starts with foobaz xy";
    }
    

    【讨论】:

    • 我还是新手,但如果可以的话,我会投票赞成!非常感谢你的帮助。我能够使用此代码并从中创建一个返回 TRUE 或 FALSE 的小函数。这将帮助我完成我的程序并使其更简单!
    【解决方案2】:

    至于不区分大小写的问题,您可以将新字符串复制到另一个字符串并将其转换为全部小写,这将使其不区分大小写。

    假设字符串 A= foobaz xy 和 b=sth sth sth 那么您需要做的就是获取字符串 b 的子字符串,该子字符串始终是 foobaz xy 的大小,因此,如果 b 小于 foobaz xy字数,会自动打折。如果不是,那么您需要将子字符串与常量字符串 A 进行比较,这将解决问题。

    see php substring here:

    see strcmp here to compare the substring and your string see here to convert a string into all lowercase

    【讨论】:

      【解决方案3】:

      最快的检查方法:

      $variable  = "FooBaz xy test string";
      $isContain = strpos(strlower($variable, "foobaz xy")) === 0;
      

      【讨论】:

      • @invisal 解决方案更好,忘了stripos功能
      【解决方案4】:

      第一个答案是正确的,更多信息请访问http://www.php.net/manual/en/function.stripos.php。永远记住,在简单的字符串检查中使用正则表达式是一种不好的做法。

      【讨论】:

      • 谢谢。我觉得这不是一个好主意,这就是为什么我发帖询问,我很高兴我做到了!
      猜你喜欢
      • 2011-02-02
      • 2017-05-22
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      相关资源
      最近更新 更多