【问题标题】:php what is the equivalent of preg_match but does not require regex?php 什么是 preg_match 但不需要正则表达式?
【发布时间】:2011-04-28 16:58:49
【问题描述】:

在 PHP 中是否存在不需要使用正则表达式的 preg_match 等价物? str_replace() 对应 preg_replacepreg_match 有什么东西吗。

*update * 我只是想用另一个替换一个已知的字符串。使用正则表达式似乎有点矫枉过正。

我有字符串“这是 [test1],而不是 [test2]”,我想将它们与“[test1]”和“[test2]”匹配。

【问题讨论】:

  • 在需要正则表达式的地方你必须使用正则表达式
  • str_replace 不等同于 preg_replace。他们的目的不同。

标签: php preg-replace preg-match str-replace


【解决方案1】:

如果你的意思是不使用正则表达式在另一个字符串中查找一个字符串,你可以使用strpos

if (strpos('hello today', 'hello') !== false) {
    // string found
}

【讨论】:

  • +1 因为我是在看了你的回答后才明白这个问题
【解决方案2】:

由于我不确定您正在寻找什么结果,所以我不能说这是否正是您正在寻找的结果。

您可以使用strpos 来查看一个字符串是否出现在另一个字符串中。

【讨论】:

    【解决方案3】:

    为了回答你的问题,PHP 有一些没有正则表达式的功能

    如果你只使用 preg_match() 想检查一个字符串是否 包含在另一个字符串中。采用 strpos() 或 strstr() 代替它们 会更快。

    但他们根本无法完全取代preg_match

    【讨论】:

      【解决方案4】:

      首先,str_replace() 不能替代 preg_replace()。函数str_replace()用替换字符串替换所有出现的搜索字符串,preg_replace()替换正则表达式选择的内容(这不是一回事)。

      很多东西都需要正则表达式(这很好),所以你不能简单地用单个 PHP 函数替换它。

      【讨论】:

      • str_replacepreg_replace 的替代品,当您只想替换一个字符串中出现的另一个字符串时。
      • @MitMaro,在这种情况下,是的。但总的来说,这根本不是真的。尝试用 str_replace() 匹配更复杂的模式并用其他东西替换它,而不是仅仅尝试用 B 替换 A。同意你的观点,你说的是真的。
      • 我假设这就是 OP 正在寻找的东西。很难说没有更多细节。
      • @MitMaro,再次同意,很难说......但根据这个问题,他正在寻找不需要正则表达式的别名函数。当然,str_replace() 不是 preg_replace() 的别名。
      【解决方案5】:

      大多数开发人员使用 preg_match 是因为他们想使用匹配项(将由函数设置的第三个参数)。

      我想不出一个函数会返回或设置与匹配相同的信息。

      但是,如果您使用 preg_match 而不使用正则表达式,那么您可能不太关心匹配。

      如果您使用 preg_match 来查看是否存在“匹配”,那么我建议使用 strpos 代替,因为它更有效地查看是否找到一个字符串另一个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-05
        • 2014-06-28
        • 1970-01-01
        • 1970-01-01
        • 2013-06-19
        相关资源
        最近更新 更多