Вы можете использовать группу захвата, если хотите захватить значение (или сделать так, чтобы оно не захватывало (?:
) с классом символов и чередованием с использованием |
, чтобы соответствовать либо символам из 2 слов, либо соответствует 5 раз одному из перечисленных.
^.*\s(\w{2}|[\w/-]{5})$
Regex demo
Обратите внимание, что \s
также может соответствовать символу новой строки.
Если /
и -
не могут встречаться 2 раза друг за другом, а не в начале или в конце, и их должно быть хотя бы одно вхождение:
^.*\s(\w{2}|(?=[\w/-]{5}$)\w+(?:[/-]\w+)+)$
Regex demo
Или сделать вторую часть строки необязательной
^.*\s([a-zA-Z]{2}(?:[/-][a-zA-Z]{2})?)$
Regex demo