R Regex Problem: "- \\ s [AZ]" Строчные буквы, соответствующие заглавной букве, и удаление тире + пробел - PullRequest
0 голосов
/ 26 февраля 2019

Предположим, у вас есть строка: "Переполнение стека"

Я хочу в нижнем регистре заглавный символ, которому предшествует тире и пробел, и удалить тире и пробел.

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

c("Stack- Overflow") %>% str_replace_all("-\\s[A-Z]", "o")

Большое вам спасибо.

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете использовать gsub с perl=TRUE следующим образом:

c("Stack- Overflow") %>% gsub(pattern="-\\s+([A-Z])", replacement="\\L\\1", perl=TRUE)
[1] "Stackoverflow"

Подробности

  • - - соответствует дефису
  • \\s+ - 1 или более пробелов
  • ([A-Z]) - Группа захвата 1: любая заглавная буква ASCII

\\L - это оператор нижнего регистра, который переводит всетекст справа от нижнего регистра, пока не встретится оператор \\E (здесь он опущен, поскольку весь замещающий текст должен быть переведен в нижний регистр).

...