I want to create regex that matches a digit, followed by the string A, B or AB.
Should match:
0A
0B
0AB
not:
0AA
0BB
0BA
I started as follows, but that would also match the values below that I don't want to match:
[0-9][AB]
Of course this is due to the [AB] group. But how can I only match like A|B|AB?
CodePudding user response:
You may use this regex:
^\d(?:[AB]|AB)?$
It matches a digit at the start followed by A or B using character class [AB] or just AB as an alternative.
CodePudding user response:
Using [AB] matches 1 or more times either A or B, and the pattern is unanchored to is can partially match in 0ABC
You can match either A followed by an optional B, or a single B.
^\d(?:AB?|B)$
Or with word boundaries:
\b\d(?:AB?|B)\b
CodePudding user response:
Or this way:
\dA?B?
A digit with 0 or 1 "A" and 0 or 1 "B".
