Регулярное выражение, которое выбирает все после первых последовательных заглавных слов
Я хотел бы выбрать все после первых нескольких последовательных заглавных слов. то есть:
Terry Smith is a good school teacher. She works tirelessly.
станет;
is a good school teacher. She works tirelessly.
Пока это не работает;
(^[A-Z][a-z]+(?=\s[A-Z])(?:\s[A-Z][a-z]+)+)([\s\S]*)
Я использую его в плагине подделки каналов Drupal с функцией "найти и заменить регулярное выражение", чтобы заменить все после "Терри Смита" пустым пространством.
2 ответа
Следующее выражение соответствует всем последовательным заглавным словам в начале предложения.
^(?:(?:[A-Z][a-z]+)(?>\s*))+
Если вы хотите удалить эту часть из setnence, тогда все, что вам нужно сделать, это заменить ее пустой строкой.
Если вы хотите заменить часть, которая идет после нее, вы можете использовать следующее выражение:
^((?:(?:[A-Z][a-z]+)(?>\s*))+)([\s\S]+)
и использовать строку замены $1
или что-то на вашем языке, которое используется для ссылки на первую захваченную группу.
Это найдет заглавные слова:
[A-Z][a-z]+(?=\b)\s*
Вы можете заменить +
с *
после [a-z]
также сопоставлять односимвольные заглавные слова.
Чтобы получить все заглавные слова в начале строки, добавьте ^(
а также )+
вокруг него:
^([A-Z][a-z]+(?=\b)\s*)+