【问题标题】:PHP string matching code for querying sql查询sql的php字符串匹配代码
【发布时间】:2012-02-21 11:10:52
【问题描述】:

我正在尝试编写 PHP 代码来查询以下值。

考虑像 \"$string\" 这样的表达式 NAME,其中,

$string should match,
ABC,        //ABC can be followed by any characters (including special character)
ABCdef      //ABC can be followed by any characters (including special character)
ABC         //ABC followed by ONE Space
ABC df      //ABC SPACE followed by anything
def ABC sda //ABC being start of a word
ABC         //Just ABC

即ABC 应该是字符串的开头,并且不应该在任何字符之间。

[编辑]: 我尝试了一些通配符,例如,

where $name like \"%$string%\" or like \"%string %\"

但它不起作用。由于我是 PHP 和正则表达式的新手,你能帮我想出一个解决方案吗?

【问题讨论】:

  • 请解释一下这个例子def ABC sda这是否意味着“ABC”可以在中间
  • 可以,abc可以在中间。

标签: php sql regex


【解决方案1】:

你试过了吗?

/(^|\s)ABC/

我们检查“字符串开头” (^) 或空格 (\s) 后跟 ABC

编辑

借用 @rodneyrehm,您可能正在寻找 SQL,而不是 PHP 正则表达式 - 在这种情况下,您需要

... WHERE name RLIKE '(^|\\s)ABC'

或者没有正则表达式

... WHERE (name LIKE 'ABC%' OR name LIKE '% ABC%')

【讨论】:

  • 我认为他只是想要/^ABC.*/。 "ABC 应该是字符串的开头"
  • 但他也有def ABC sda //ABC being start of a word
【解决方案2】:

您是否正在寻找通配符?

WHERE name LIKE "ABC%"

如果您确实需要,请参阅 String Comparison FunctionsRegular Expressions

【讨论】:

    猜你喜欢
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    相关资源
    最近更新 更多