【问题标题】:simple preg_replace() that I can't get working (i suck at regex)我无法工作的简单 preg_replace() (我很讨厌正则表达式)
【发布时间】:2009-07-07 15:58:37
【问题描述】:
$count_sql = preg_replace("/SELECT(.+?)FROM/", "SELECT COUNT(*) FROM", $sql);

我想要做的事情可能很明显,但我对正则表达式很糟糕。

我需要用 COUNT(*) 替换 SELECT 和 FROM 之间的任何内容。

尝试使用 (.+)、(.+?)、(.*) 和 (.*?)。

【问题讨论】:

  • 您的正则表达式看起来不错 - 您能否发布一个您尝试匹配但不起作用的字符串示例?

标签: php mysql regex


【解决方案1】:

看起来不错...您的 SQL 是否包含换行符?如果是这样,您将需要 s 修饰符:

$count_sql = preg_replace("/SELECT(.+?)FROM/s", "SELECT COUNT(*) FROM", $sql);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多