我试图从表中的列中找到一个代码,而不是包含一系列字母和数字。他们的代码包含前缀^AB
,然后是一系列字母A OR AAA
或字母或数字1 OR A1 OR 1A
我需要一个正则表达式,如果前缀后面的字符包含数字
,则返回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)$';
但是这不匹配。
答案 0 :(得分:1)
你的正则表达式没有任何字符串,它永远不会匹配,因为在字符串结束后需要一个数字。
您需要使用
^AB[A-Z]*[0-9][A-Z0-9]*$
请参阅regex demo
模式详情:
^
- 字符串开头AB
- "硬编码"前缀[A-Z]*
- 0+大写ASCII字符[0-9]
- 数字[A-Z0-9]*
- 0+大写字母/数字$
- 字符串结束。