Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL regexp,用于匹配字符串中的数字列表_Mysql_Regex - Fatal编程技术网

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}$这样的方法。只有使用您的,我才能得到期望值:)