我正在研究一个正则表达式,它仅在给定值为 A 或 B 的情况下返回 1。
我用了
select 'A' REGEXP '^A|B$'
'|' 符号的行为类似于“或”,但结果与 AB 不同:
select 'AB' REGEXP '^A|B$' = 1
虽然我预计这里没有比赛。
我正在研究一个正则表达式,它仅在给定值为 A 或 B 的情况下返回 1。
我用了
select 'A' REGEXP '^A|B$'
'|' 符号的行为类似于“或”,但结果与 AB 不同:
select 'AB' REGEXP '^A|B$' = 1
虽然我预计这里没有比赛。
您当前的解决方案匹配
^A
-A
在字符串的开头|
- 或者B$
-B
在字符串的末尾。REGEXP
运算符可以返回部分匹配项(与需要通配符模式来匹配整个字符串的运算符不同LIKE
),因此可以匹配ABC
and CAB
。请参阅正则表达式演示。
您可以使用
select 'A' REGEXP '^(A|B)$'
在这里A|B
是一个分组结构,^
并且$
都修改了A
和B
分支。请参阅此正则表达式演示。
如果这些A
和B
是单个字符,请使用[AB]
括号表达式:
'^[AB]$'
where[AB]
匹配A
orB
和^
/$
锚点修改括号内的每个字母。
请参阅此正则表达式演示。