Regex для регистра Pascal и ограничения символов [java]

Я пытаюсь создать регулярное выражение, которое будет проверять строку, которая состоит только из регистра Pascal и ограничена 10 символами.

То, что я получил до сих пор, основано на ответе Аликс Аксель на следующий вопрос: регулярное выражение, соответствующее случаю верблюда и паскаля

Итак, регулярное выражение, которое я использую для проверки случая Паскаля:

^[A-Z][a-z]+(?:[A-Z][a-z]+)*$

Но я не могу ограничить эту строку определенным количеством символов, я пробовал использовать квантификатор в нескольких местах, но я не могу заставить его работать так, как я ожидаю.

Например, я ожидаю, что следующее регулярное выражение подтвердит регистр Pascal и ограничит количество символов в строке до 5 символов

^[A-Z][a-z]+(?:[A-Z][a-z]+){0,4}$

Но он на самом деле проверяет регистр строки (символ верхнего регистра, за которым следуют символы нижнего регистра) 5 раз и не соответствует 6-му вхождению. Например, вышеупомянутое будет соответствовать RegexCanBeHardSometimes строка, но не будет соответствовать RegexCanBeHardSomeTimes строка

0 ответов

Другие вопросы по тегам