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