2015-12-07 4 views
10

Я хочу, чтобы удалить лишние пробелы, добавить пробелы при необходимости и первой буквы каждого слова после того, как специальный символ, используя 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) 

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

+0

вам нужно разрешить пробелы 'gsub (" (^. | [,;] \\ s *.) "," \\ U \\ 1 ", string, perl = TRUE)' – rawr

ответ

5

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

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" 

См this IDEONE demo

PCRE, регулярные выражения матчи:

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

Замена:

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

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