【问题标题】:How do I escape square brackets in mysql REGEXP?如何在 mysql REGEXP 中转义方括号?
【发布时间】:2011-08-17 02:13:30
【问题描述】:

我将视频嵌入代码存储在数据库表中。我们使用多个视频源,包括 YouTube、Viddler 和本地存储的 Flash 文件。我需要找到所有带有闪存文件的记录。闪存记录的正文字段如下所示:

[swf file="/sites/default/files/lecture-video/2010_02_beier_schanzer.swf" width="702" height="560"]

我希望做这样的事情:

SELECT * FROM `node_revisions` inner join node on node_revisions.nid = node.nid where node.type = "video" and node_revisions.body REGEXP "^[swf"

但出现以下错误:

39 - 从正则表达式中得到错误“括号 ([ ]) 不平衡”

当括号是我要查找的第一个字符时,如何转义括号?

【问题讨论】:

    标签: mysql regex


    【解决方案1】:

    你必须使用两个反斜杠。

    regexp '^\\[swf'
    

    【讨论】:

    • 谢谢!不知道为什么我没有想到尝试双反斜杠。
    • 对于任何想知道为什么需要两个斜杠而不是一个斜杠来转义的人,请参阅答案here
    猜你喜欢
    • 2015-09-25
    • 2021-12-31
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多