2015-12-07 26 views
10

Ar özel karakterler sonra ilk harfini büyük ve R kullanarak özel karakterden sonra her kelimenin ilk harfini büyükgerekirse boşluk eklemek, ben fazladan boşluk kaldırmak istiyor

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

istediğim çıkış

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

Ben

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

yaramadı

çalıştı.

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 regex eşleşmeleri görün kullanabilirsiniz

+0

Beyaz boşluk için izin vermeniz gerekir gsub ("(^. | [,;] \\ s *.)", "\\ U \\ 1", string, perl = TRUE) ' – rawr

cevap

5

yardım edin:

  • (^|\\p{P}) - (Grup 1) dizenin başlangıç ​​veya herhangi noktalama
  • \\s* - 0 ya da daha fazla boşluk karakteri
  • (.) - (Grup 2)

yerine herhangi bir karakter ama yeni satır:

  • \\1 - geribaşvurularla Grup 1
  • - noktalama ve sonraki karakter ya da arasında bir boşluk ekler dize başlangıcı
  • \\U\\2 - Grup 2 karakter büyük harfini döndürür

Ve trimws, regex ile eklediğimiz ilk alanı kaldırır.