^A?\d{1,3}-(M|A?\d{1,3})$
^ - совпадение должно быть сделано с начала
A? - «А» является необязательным
\ d {1,3} - от 1 до 3 цифр; [0-9] {1,3} также работает
- - Символ "-"
(... | ...) - Либо одно из двух выражений
(M | ...) - Либо "M", либо ...
(... | A? \ D {1,3}) - "A", за которым следуют не менее одной и не более трех цифр
$ - матч должен быть завершен до конца
Некоторые последствия смены формата. Если вы не поставите «^» в начале, совпадение может игнорировать недопустимое начало. Например, «MAAMA0-M» будет соответствовать «A0-M».
Если вы также пропустите $ out, совпадение может игнорировать неверный след. Например, «A0-MMMMAAMAM» будет соответствовать «A0-M».
Обычно предпочтительнее использовать \ d, как \ w для буквенно-цифровых символов, \ s для пробелов, \ D для не цифр, \ W для не алфавитно-цифровых или \ S для не пробелов. Но вы должны быть осторожны, чтобы \ d не рассматривалось как escape-последовательность. Возможно, вам придется написать это \\ d вместо этого.
{x, y} означает, что последнее совпадение должно быть между x и y разами.
? означает, что последнее совпадение должно произойти один раз или не произойти вовсе
При использовании () он рассматривается как одно совпадение. (ABC)? будет соответствовать ABC или вообще ничего.