Mariadb 正则表达式 - 检查字符串是否包含前缀和至少 1 位数字
Mariadb Regular Expression - Check if string contains a prefix and at least 1 digit
我正在尝试从 table 中包含一系列字母和数字的列中查找代码。他们的代码包含前缀 ^AB
然后是字母 A OR AAA
或字母或数字 1 OR A1 OR 1A
的序列
我需要一个正则表达式 returns YES/NO 如果前缀后面的字符包含数字
我目前拥有的是:
SELECT 'AB1AX' RLIKE '^AB[A-Z0-9]+(?=\d)$';
SELECT 'ABA1X' RLIKE '^AB[A-Z0-9]+(?=\d)$';
SELECT 'AB09' RLIKE '^AB[A-Z0-9]+(?=\d)$';
然而这不匹配。
你的正则表达式不匹配任何字符串,它永远不会匹配,因为你需要在字符串结尾后有一个数字。
您需要使用
^AB[A-Z]*[0-9][A-Z0-9]*$
图案详情:
^
- 字符串开头
AB
- "hard-coded" 前缀
[A-Z]*
- 0+ 大写 ASCII 字符
[0-9]
- 一个数字
[A-Z0-9]*
- 0+ 大写 letters/digits
$
- 字符串结尾。
我正在尝试从 table 中包含一系列字母和数字的列中查找代码。他们的代码包含前缀 ^AB
然后是字母 A OR AAA
或字母或数字 1 OR A1 OR 1A
我需要一个正则表达式 returns YES/NO 如果前缀后面的字符包含数字
我目前拥有的是:
SELECT 'AB1AX' RLIKE '^AB[A-Z0-9]+(?=\d)$';
SELECT 'ABA1X' RLIKE '^AB[A-Z0-9]+(?=\d)$';
SELECT 'AB09' RLIKE '^AB[A-Z0-9]+(?=\d)$';
然而这不匹配。
你的正则表达式不匹配任何字符串,它永远不会匹配,因为你需要在字符串结尾后有一个数字。
您需要使用
^AB[A-Z]*[0-9][A-Z0-9]*$
图案详情:
^
- 字符串开头AB
- "hard-coded" 前缀[A-Z]*
- 0+ 大写 ASCII 字符[0-9]
- 一个数字[A-Z0-9]*
- 0+ 大写 letters/digits$
- 字符串结尾。