MySQL regexp,用于匹配字符串中的数字列表
我有几行字符串与此类似:MySQL regexp,用于匹配字符串中的数字列表,mysql,regex,Mysql,Regex,我有几行字符串与此类似:1,19 | 11 | 14,2 我想看的信息是:19 | 11 | 14(这是数字列表,19 11和14) 应匹配此信息,以查看是否有任何数字在8到13之间 实现这一目标最有效的方法是什么?我试着使用这样的regexp:[^0-9]*(8|9 | 10 | 11 | 12 | 13)[^0-9]* 但这也会匹配数字9,实际上是19 也欢迎使用其他解析字符串的方法,只能使用MySQL 5.0中提供的函数。据我所知,MySQL的正则表达式支持非常简单,我不确定这到底有多可能
1,19 | 11 | 14,2
我想看的信息是:
19 | 11 | 14
(这是数字列表,19 11和14)应匹配此信息,以查看是否有任何数字在8到13之间
实现这一目标最有效的方法是什么?我试着使用这样的regexp:
[^0-9]*(8|9 | 10 | 11 | 12 | 13)[^0-9]*
但这也会匹配数字9,实际上是19
也欢迎使用其他解析字符串的方法,只能使用MySQL 5.0中提供的函数。据我所知,MySQL的正则表达式支持非常简单,我不确定这到底有多可能。我认为它不支持单词边界或环顾四周的断言。这个怎么样
(^|[^0-9])(8|9|10|11|12|13)([^0-9]|$)
您的正则表达式当前状态为0个或多个非数字字符,后跟8到13之间的数字,后跟0个或多个非数字字符。不清楚你想匹配什么@例如,我希望匹配
1,8 | 17,1
中的数字8,而不是1,18 | 17,1
中的数字8。如果前面的不是数字,我只想匹配8。最后,你提出的解决方案解决了我的问题。我试过像^[[:digit:]{10}$和^[0-9]{10}$这样的方法。只有使用您的,我才能得到期望值:)