我正在研究一个正则表达式,它仅在给定值为 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 ),因此可以匹配ABCand CAB。请参阅正则表达式演示。
您可以使用
select 'A' REGEXP '^(A|B)$'
在这里A|B是一个分组结构,^并且$都修改了A和B分支。请参阅此正则表达式演示。
如果这些A和B是单个字符,请使用[AB]括号表达式:
'^[AB]$'
where[AB]匹配AorB和^/$锚点修改括号内的每个字母。
请参阅此正则表达式演示。