我正在尝试提出一个正则表达式来帮助我验证血型字段 – 它应该只接受A [ – ],B [ – ],AB [ – ]和O [ – ].
这是我想出的正则表达式(并使用Regex Tester测试):
[A|B|AB|O][\+|\-]
现在这个模式成功地匹配A,B,O [ – ]但是对AB [ – ]失败了.
任何人都可以建议一个符合我目的的正则表达式吗?
谢谢,
米^ E
解决方法
尝试:
(A|B|AB|O)[+-]
使用方括号定义了一个character class,它只能是一个单个字符.括号create a grouping允许它做你想要的.你也不需要在字符类中转义 – 因为它们里面没有它们的regexy含义.
正如您在评论中提到的,如果它是您要匹配的字符串,并且具有您要查找的确切值,则可能需要执行以下操作:
^(A|B|AB|O)[+-]$
如果没有start of string and end of string anchors,“helloAB asdads”之类的东西就会匹配.