(([a-z0-9]{3,8}-){1,4}[a-z0-9]{3,8}(\s|,)|([A-Z0-9]{3,8}-){1,4}[A-Z0-9]{3,8}(\s|,))
Это работает для меня. все символы в нижнем регистре или все символы в верхнем регистре. пути должны быть длиной от 3 до 8 символов / цифр и разделяться минусом. первый шаблон будет выполнять от 1 до 4 повторений, последний шаблон с такой же структурой не должен иметь минус в конце. За полным ключом следует запятая или любой пробел, включая newLine, tab, пробел, ничего.
[a-z0-9]{3,8}-
= все нижние символы + все цифры от 3 до 8 раз, за которыми следует минус
([a-z0-9]{3,8}-){1,4}
= выше правила от 1 до 4 раз
[A-Z0-9]{3,8}-
= весь верхний символ + все цифры от 3 до 8 раз, за которыми следует минус
|
= ИЛИ -> только одно из правил должно быть истинным
(\s|,)
= wollowed ничем, пробелом, табуляцией или символом новой строки или запятой
Если вы знаете, что есть только верхние символы, вы можете удалить это правило для нижних символов, поэтому у вас осталось:
([A-Z0-9?]{3,8}-){1,4}[A-Z0-9?]{3,8}(\s|,)