【问题标题】:REGEXP match either keywords in the string using MySQLREGEXP 使用 MySQL 匹配字符串中的任一关键字
【发布时间】:2015-02-03 11:20:08
【问题描述】:

我正在尝试使用 REGEXP 搜索字符串中的关键字,我想要的搜索方式是:

存储的字符串 1:“快速棕色狐狸跳过懒狗” 存储字符串 2:“聪明的兔子从老虎身边跑掉了” 关键词:“Clever| Fox”(两个关键词用分隔符“|”隔开)

我想搜索包含其中一个关键字或所有关键字的故事。

我使用 str_replace 关键字字符串使关键字字符串成为可用于 mysql 查询的正则表达式。我尝试了许多此处提供的解决方案来解决以前提出的问题,但没有发现对我有用。

到目前为止,我尝试过的一种方法是:

SELECT * FROM stories WHERE story_body REGEXP '[[:<:]]Clever[[:>:]].*[[:<:]] Fox[[:>:]]'

我如何实现这一目标?谢谢!

【问题讨论】:

    标签: mysql regex string


    【解决方案1】:
    ^.*(Clever|Fox).*$
    

    只需使用这个。查看演示。

    https://regex101.com/r/vD5iH9/55

    ^.*\b(Clever|Fox)\b.*$
    

    只是为了非常安全。

    【讨论】:

    • 你太棒了,这就像一个魅力。谢谢!!我在哪里可以学习这个正则表达式的一件事是否有任何视频或好的资源?
    • @Iglance3 regex101.com ....你可以在这里学习......查看右侧的解释......只有实践才能让你成为正则表达式的狂热爱好者。
    • 抱歉打扰您了,但它不适用于多个关键字。如果有第三个或更多关键字,则它将不起作用...
    • 好的,我在示例中遇到了问题,我忘记了 //gim,再次感谢
    • @Iglance3 这是不可能的。正则表达式引擎一旦匹配移出交替组。这将要求您为此构建特定的正则表达式。但它不会是通用的。请参阅regex101.com/r/vD5iH9/74
    猜你喜欢
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多