У меня есть регулярное выражение, которое соответствует набору цифр и букв.Однако я хотел бы иметь возможность исключить любые три последовательных письма.Это сделано для предотвращения случайного формирования слов или сокращений.
У меня есть следующее выражение.Также исключаются некоторые похожие символы, такие как 0, o, O и 1, i, I, l):
^[2-9a-hjkmnp-zA-HJ-NP-Z]{4}$
Это соответствует строкам, таким как 24rQ
и 1234
.Но я бы хотел, чтобы оно не совпадало с 2dmv
.Потому что в этом случае это может содержать известное сокращение (положительное или отрицательное).
https://regex101.com/r/bbiQWD/1/
Громоздким способом является выписка всех комбинаций.Я написал сокращение (включая похожие символы) в качестве примера.Но это не так легко читается или легко объяснить / поддержать.
(^\d{4}$)|
(^\d{3}\w$)|
(^\d{2}[\d\w]{2}$)|
(^\d{1}[\d\w]{2}\d{1}$)|
(^\d{1}\w{1}\d{1}\w{1}$)|
(^[\d\w]{2}\d{1}[\d\w]{1}$)|
(^\w{1}\d{1}[\d\w]{2}$)
https://regex101.com/r/bbiQWD/2
Есть ли лучший способ искать три последовательных буквы?