mysql - 如何使下面的正则表达式适用于 MySql?

标签 mysql regex

我已经编写了正则表达式并在线测试了它,工作正常。当我在终端、MySQL 控制台中测试时,它不匹配,并且我得到一个空集。我相信 MySQL regexp 语法有些不同,但我找不到正确的方法。

这是我使用的数据:

edu.ba;
medu.ba;
edu.ba;
med.edu.ba;
edu.com;
edu.ba

我应该只获得 edu.ba 匹配项,包括;如果有的话。除了实际查询之外,工作正常。

(\;+|^)\bedu.ba\b(\;+|$|\n)

我可以改变什么来获得相同的结果吗?

最佳答案

您想要在分号或字符串的开头/结尾之间匹配 edu.ba。这里的单词边界是多余的(尽管如果你想实验,MySQL v8之前的MySQL正则表达式使用 [[:<:]]/[[:>:]] word boundaries ,而在 MySQL v8+ 中,你需要使用双反斜杠和 \b - '\\b' )。

使用

(;|^)edu[.]ba(;|$)

详细信息

  • (;|^) - ; 或字符串开头
  • edu[.]ba - edu.ba 文字字符串(括号内的点始终与文字点匹配)
  • (;|$) - ; 或字符串结尾。

关于mysql - 如何使下面的正则表达式适用于 MySql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57163074/

相关文章:

MySQL 5.1.65 |选择在哪里找不到我知道的东西

mysql - 如何存储密码盐

regex - (*SKIP) 或 (*F) 如何处理正则表达式?

java - 正则表达式 ^\\Q &\\E

php - PHP`preg_match_all` 函数的 Boost::regexp 模拟是什么?

javascript - 解析句子并提取转换值

mysql - 更改列名的动态过程

c# - 通过asp.net连接mysql数据库

php - 我怎样才能用数据库中的数据制作这个数组?

c# - 将 PHP 正则表达式转换为 c# RegEx 模式