I’m trying to come up with a regex that helps me validate a Blood Group field – which should accept only A[+-], B[+-], AB[+-] and O[+-].
Here’s the regex I came up with (and tested using Regex Tester):
[A|B|AB|O][\+|\-]
Now this pattern successfully matches A,B,O[+-] but fails against AB[+-].
Can anyone please suggest a regex that’ll serve my purpose?
Thanks,
m^e
Try:
Using square brackets defines a character class, which can only be a single character. The parentheses create a grouping which allows it to do what you want. You also don’t need to escape the
+-in the character class, as they don’t have their regexy meaning inside of it.As you mentioned in the comments, if it is a string you want to match against that has the exact values you are looking for, you might want to do this:
Without the start of string and end of string anchors, things like “helloAB+asdads” would match.