【问题标题】:MySQL Word Boundary Queries with Hyphen带连字符的 MySQL 字边界查询
【发布时间】:2011-10-27 11:47:06
【问题描述】:

我正在使用以下 REGEXP 进行搜索

[[:<:]]word1[[:>:]]

但问题是 mysql 正则表达式中的连字符是单词边界。所以如果用'security'搜索,它也匹配'info-security','network-security'。

有没有办法避免这种情况?

【问题讨论】:

    标签: mysql regex


    【解决方案1】:

    只需将字符串中的连字符替换为下划线或空字符串即可。

    REPLACE(列名, '-', '_') 正则表达式 ...

    【讨论】:

    • 那行不通。我的目标是不匹配那些连字符分隔的单词。您的解决方案仍然与这些匹配。
    • select 'word1-etc' REGEXP '[[:<:>:]]' 返回1,选择'word1_etc' REGEXP '[[:<:>:]]' 返回 0
    • 啊..我现在看到它是因为下划线不是单词边界。有用。我的错。但我也需要替换输入中的连字符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2017-09-18
    • 2023-03-30
    相关资源
    最近更新 更多