Подтвердить что ты не робот

Заглавную букву после специальных символов в R

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

string <- "apple,banana, cat, doll and donkey;     fish,goat"

Мне нужен вывод как

Apple, Banana, Cat, Doll and donkey; Fish, Goat

Я пробовал

gsub("(^.|,.|;.)", "\\U\\1", string, perl=T, useBytes = F)

Это не сработало. Пожалуйста, помогите

4b9b3361

Ответ 1

Вы можете использовать

string <- "apple,banana, cat, doll and donkey;     fish,goat"
trimws(gsub("(^|\\p{P})\\s*(.)", "\\1 \\U\\2", string, perl=T))
## => [1] "Apple, Banana, Cat, Doll and donkey; Fish, Goat"

Смотрите эту демонстрационную версию IDEONE

Регулярное выражение PCRE соответствует:

  • (^|\\p{P}) - (группа 1) начало строки или любой пунктуации
  • \\s* - 0 или более символов пробела
  • (.) - (группа 2) любой символ, но символ новой строки

Замена:

  • \\1 - backreferences Группа 1
  • - вставляет пробел между пунктуацией и следующим символом или в начале строки
  • \\U\\2 - переводит символ группы 2 в верхний регистр

И trimws удаляет начальное пространство, добавленное с помощью регулярного выражения.