在Regular Expression to Match Blood Group方面需要帮助

miC*_*inG 3 regex

我正在尝试提出一个正则表达式来帮助我验证血型字段 - 它应该只接受A [+ - ],B [+ - ],AB [+ - ]和O [+ - ].

这是我提出的正则表达式(并使用Regex Tester测试):

[A|B|AB|O][\+|\-]
Run Code Online (Sandbox Code Playgroud)

现在这个模式成功匹配A,B,O [+ - ]但是对AB [+ - ]失败.

任何人都可以建议一个符合我目的的正则表达式吗?

谢谢,m ^ e

Pao*_*ino 17

尝试:

(A|B|AB|O)[+-]
Run Code Online (Sandbox Code Playgroud)

使用方括号定义一个字符类,它只能是一个字符.括号创建一个分组,允许它做你想要的.你也不需要+-在字符类中转义它,因为它们里面没有它们的regexy含义.

正如您在评论中提到的,如果它是您要匹配的字符串,并且具有您要查找的确切值,则可能需要执行以下操作:

^(A|B|AB|O)[+-]$
Run Code Online (Sandbox Code Playgroud)

如果没有字符串开头和字符串锚点的结尾, "helloAB + asdads"之类的东西就会匹配.

  • +1,但如果OP想要将其用作验证器,您可能应该将\ A和\ z添加到正则表达式中.正则表达式成为\ A(A | B | AB | O)[+ - ]\z (2认同)