Я хотел бы сопоставить слова в строке, начинающиеся с заглавной буквы, и продолжать до тех пор, пока не начнутся слова, начинающиеся с другой заглавной буквы.
Animals Chicken helmet Animal baby kids Crazy 6 yo monkey Baby white-black horse
Соответствие: / содержит строчные буквы, цифры, специальные символы
Animals
Chicken helmet
Animal baby kids
Crazy 6 yo monkey
Baby white-black horse
я пробовал это
(^[A-Za-z]+\s?\w+\W+?\d?)+
Вы можете использовать
\b[A-Z]\S*(?:\s+[^A-Z\s]\S*)*
Посмотрите демонстрацию регулярного выражения .
Подробности
\b
- граница слова (если слова разделены пробелами, заменить на (?<!\S)
)[A-Z]\S*
- заглавная буква ASCII (замените на \p{Lu}
, если поддерживается поддержка Unicode), а затем любые ноль или более символов без пробелов(?:\s+[^A-Z\s]\S*)*
- ноль или более вхождений
\s+
- один или несколько пробелов[^A-Z\s]
- любой символ, кроме пробела и заглавной буквы ASCII (используйте [^\p{Lu}\s]
, если необходима и поддерживается поддержка Uniocde)\S*
- любой ноль или более непробельных символов