首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL REGEXP -开始或结束锚导致匹配失败

问MySQL REGEXP -开始或结束锚导致匹配失败
EN

Stack Overflow用户
提问于 2015-08-21 09:48:22
回答 1查看 203关注 0票数 2

在MySQL中,我有以下Regexp:

代码语言:javascript
复制
"^[0-9]+[a-z]?(\s?\-\s?[0-9]+[a-z]?)?$"

我测试它的字符串是"1 - 3" (任何数字都应该在这里工作),因此产生了以下MySQL:

代码语言:javascript
复制
SELECT
"1 - 3" REGEXP "^[0-9]+[a-z]?(\s?\-\s?[0-9]+[a-z]?)?$"

false的结果。问题是,在我的regexp模式中,这不是一个错误,因为如果我在开始时去掉^,或者在结束时去掉$,那么结果就是$。

这是一个bug吗?如果是的话,有解决办法吗?还是我做错什么了?

提前感谢!

Ps.:正则表达式的目的是将房屋号从一条街道上取出来,在字符串中的任意位置都有这个数字。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-21 09:55:11

MySQL在Regexes中不支持\s。

使用[[:space:]]代替:

代码语言:javascript
复制
SELECT
"1 - 3" REGEXP "^[0-9]+[a-z]?([[:space:]]?\-[[:space:]]?[0-9]+[a-z]?)?$"

返回1。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32137351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档