mysql - MySQL正则表达式为逗号分隔的文本

标签 mysql regex comma

我对存储在数据库中的逗号分隔文本有一点问题。我有一个类似“ 12,5,45”的字符串,我想使用mysql的regexp函数来匹配5:

agents REGEXP 'some regex here'


我该如何实现?

我以\ 5 +(,\ s * 5 +)\或(?:( 5)*。)?5+ \这样的正则表达式结束,但它也匹配“ 12,45”或“ 15,1”之类的字符串。我需要将正则表达式匹配的正则表达式中的5个,例如:


  “ 5”,“ 1,3,5”,“ 64,5”





  “ 45,12”,“ 1,50”。


5是元素的ID,因此我也不能匹配15或45。

我希望一切都清楚。

提前致谢。

最佳答案

由于MySQL使用的POSIX引擎既不支持word boundary anchors也不支持lookaround assertions),因此您必须使用如下正则表达式作弊

(^|,)5(,|$)


确保只有在逗号或字符串的开头/结尾将其包围时,才匹配5

关于mysql - MySQL正则表达式为逗号分隔的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24368093/

相关文章:

php - SQL 中关键字中的条件

mysql - 如何合并sql查询之间的列表?

sql - 什么是好的,后端显式游标或前端循环?

python - 可选的命名组 Python re

regex - Emacs regexp和Perl兼容正则表达式(PCRE)的比较表?

parsing - 为什么这么多汇编语法都包含逗号?

mysql - 运行时错误 3001 'Arguments are of the wrong type or out of acceptable range…' 插入 MySQL 数据库

PHP preg_split 正则表达式不与点分割

php - 如何将逗号添加到字符串中除最后一项之外的所有内容

mysql - MySQL:查询ID中以逗号分隔的条目