はR

2015-12-07 10 views
10

に特殊文字の後に、私は私がはR

Apple, Banana, Cat, Doll and donkey; Fish, Goat 
として出力したい場合は、余分なスペースを削除し、必要に応じてスペースを追加し、R

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

を使用して特殊文字の後に各単語の最初の文字を大文字にしたい最初の文字を大文字に

私はそれが動作しませんでした

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

を試してみました。

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正規表現の一致を参照してくださいあなたが使用することができます

+0

あなたは空白 'GSUBを可能にする必要があります( "(^ | [;]。\\は、S *)。"、 "\\ U \\ 1"、文字列、Perlの= TRUE)' – rawr

答えて

5

を助けてください:

  • (^|\\p{P}) - (グループ1)、文字列の先頭または句読点
  • \\s* - 0以上の空白記号
  • (.) - (グループ2)任意の文字が、改行

交換:

  • \\1 - 句読点と次の文字の間にスペースまたはを挿入します - グループ1
  • は後方参照文字列
  • \\U\\2の開始 -
大文字グループ2文字を回します10

trimwsは、正規表現で追加した最初のスペースを削除します。