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]*$

regex demo

图案详情:

  • ^ - 字符串开头
  • AB - "hard-coded" 前缀
  • [A-Z]* - 0+ 大写 ASCII 字符
  • [0-9] - 一个数字
  • [A-Z0-9]* - 0+ 大写 letters/digits
  • $ - 字符串结尾。