Mariadb Regular Expression - 检查字符串是否包含前缀和至少1位数

时间:2017-04-13 16:25:20

标签: regex mariadb

我试图从表中的列中找到一个代码,而不是包含一系列字母和数字。他们的代码包含前缀^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)$';

但是这不匹配。

1 个答案:

答案 0 :(得分:1)

你的正则表达式没有任何字符串,它永远不会匹配,因为在字符串结束后需要一个数字。

您需要使用

^AB[A-Z]*[0-9][A-Z0-9]*$

请参阅regex demo

模式详情

  • ^ - 字符串开头
  • AB - "硬编码"前缀
  • [A-Z]* - 0+大写ASCII字符
  • [0-9] - 数字
  • [A-Z0-9]* - 0+大写字母/数字
  • $ - 字符串结束。