首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在regex mysql中包含空格,但排除除数字以外的任何字符?

问如何在regex mysql中包含空格,但排除除数字以外的任何字符?
EN

Stack Overflow用户
提问于 2020-07-04 09:48:28
回答 2查看 62关注 0票数 0

我有一张这样的桌子

代码语言:javascript
复制
NO1                 | NO2
3173 02241016 0008 | 3673 0619 0590 0001
3173 0219 0312 1023 | 3671 1101 0380 0007
3173022701090232    | 3173 0218 0583 0006
3173 022601097060   | 3173 0214 0278 0010
3173021201121012    | 3173 0259 0694 1002
anywords any        | anywords any2
anyword2any2        | anywordsany3
anywords/ any-@       | anywords any2

如果值包含空格或任何类型的分隔值,如(\r,\n,\t),我希望搜索NO1列,因此我使用以下代码

代码语言:javascript
复制
select * from table1 where NO1 REGEXP '[[:blank:]]' 

结果是

代码语言:javascript
复制
    NO1                 | NO2
    3173 02241016 0008  | 3673 0619 0590 0001
    3173 0219 0312 1023 | 3671 1101 0380 0007
    3173 022601097060   | 3173 0214 0278 0010
    anywords any        | anywords any2
    anywords/ any-@       | anywords any2

现在,我想排除除number之外的至少一种单词,但我不知道如何在正则表达式匹配查询中组合include和exclude

代码语言:javascript
复制
    NO1                 | NO2
    3173 02241016 0008  | 3673 0619 0590 0001
    3173 0219 0312 1023 | 3671 1101 0380 0007
    3173 022601097060   | 3173 0214 0278 0010

我怎么能这么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-04 09:54:11

您似乎希望由数字组成的行至少有一个空格。一种简单的方法是对不包含这些字符的任何行进行查找:

代码语言:javascript
复制
where NO1 NOT regexp '[^[:blank:]0-9]' AND NO1 REGEXP '[[:blank:]]'

或者:

代码语言:javascript
复制
where  NO1 regexp '^[[:blank:]0-9]+[[:blank:]][[:blank:]0-9]*$' 

Here是一个db<>fiddle。

票数 1
EN

Stack Overflow用户

发布于 2020-07-04 11:15:52

代码语言:javascript
复制
where  NO1 regexp '^[0-9]+[[:blank:]][[:blank:]0-9]*$'

可能比戈登的版本更快。

如果您必须避免尾随空格,则可能需要这样做:

代码语言:javascript
复制
where  NO1 regexp '^[0-9]+[[:blank:]][[:blank:]0-9]*[0-9]$'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62724492

复制
相关文章

相似问题

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