gpt4 book ai didi

Mysql正则表达式不以alnum开头

转载 作者:行者123 更新时间:2023-11-30 21:47:54 28 4
gpt4 key购买 nike

我正在尝试从我的表中删除不以字母数字开头的记录。我尝试了很多不同的方法,但 MySQL 似乎不起作用。

我当前的查询是:

SELECT *
FROM central_store
WHERE DomainName NOT REGEXP '^[[a-z|0-9]]'

我也试过 :alnum选项,但我的结果仍然返回以 0-9 开头的记录。我知道这可能是基本的,但请有人解释我做错了什么。

最佳答案

由于双括号,您的模式不起作用。 ^[[a-z|0-9]] 匹配字符串的开头 (^) 位置,然后是 [[a-z|0-9]匹配一个 [,或一个 ASCII 字母,或 |,或一个 ASCII 数字,然后是一个 ]。因此,它匹配字符串开头的 a]

您可以使用

修复您的模式
REGEXP '^[^a-z0-9]'

或者,使用 ^[^[:alnum:]],因为 POSIX 字符类(如 [:alnum:])必须在括号表达式中使用:

REGEXP '^[^[:alnum:]]'

如果您有默认设置,'^[a-z0-9]' 模式也将匹配大写 ASCII 字母,因为默认情况下 MySQL 正则表达式搜索不区分大小写。

注意 '^[^a-z0-9]' 匹配

  • ^ - 字符串的开始
  • [^a-z0-9] - 除了 ASCII 字母或数字以外的任何字符([^[:alnum:]] 做同样的事情,匹配任何非字母或数字的字符)。

关于Mysql正则表达式不以alnum开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48582845/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com