首页 > 解决方案 > 正则表达式匹配两个模式之间的数字

问题描述

我试图在我的 SQL 查询中添加一个正则表达式来查找字符串中的特定数字。

此搜索的参数应为:

我能够编写一个适用于 PHP 的正则表达式: (?<=^|\+|\|)(2)(?=\||\+|$) 但我发现 MySQL 不支持这种正则表达式。

将其转换为与 MySQL 兼容的正则表达式有什么帮助吗?

谢谢你。

标签: mysqlregex

解决方案


请注意,在 MySQL v8+ 中,您可以使用环视和

(?<=^|[+|])2(?=[|+]|$)

对 ICU 正则表达式库有效。

但是,您可以简单地在组内使用交替。这种模式也适用于旧版 MySQL:

(^|[+|])2([|+]|$)

该模式将返回包含匹配文本的所有记录

  • (^|[+|]) - 记录开始,+|
  • 2-2字符
  • ([|+]|$) - 记录结束,+|

推荐阅读