Соответствие 3+ Заглавному Слову в одном выражении pcre
Я ищу единственное регулярное выражение, совместимое с pcre (версия 3.85), которое соответствует строке, состоящей из трех или более слов регистра, но не соответствует ни одной строке, содержащей слова, начинающиеся со строчной буквы. Например:
"Gaius Julius Caesar" should match
"Gaius Caesar" should not match
"Gaius Julius Caesar Rome" should match
"Gaius julius Caesar" should not match
Пытался
(\b[A-Z]\w+\b){3,}
без успеха.
Любой намек?
2 ответа
Решение
2014-10-11 10:13
Вы можете попробовать следующую команду pcregrep,
$ pcregrep -o -M '^[A-Z]\w+(?: [A-Z]\w+){2,}$' file
Gaius Julius Caesar
Gaius Julius Caesar Rome
ИЛИ ЖЕ
Попробуйте следующую команду, если следующие символы после начальной заглавной буквы должны быть строчными.
$ pcregrep -o -M '^[A-Z][a-z]+(?: [A-Z][a-z]+){2,}$' file
Gaius Julius Caesar
Gaius Julius Caesar Rome