8

スペースまたは句読点で分割される次の正規表現があります。から 1 つ以上の句読点を除外するにはどうすればよい:punct:ですか? アポストロフィとコンマを除外したいとしましょう。[all punctuation marks in here]代わりに明示的に使用できることはわかっています[[:punct:]]が、除外方法を望んでいます。

X <- "I'm not that good at regex yet, but am getting better!"
strsplit(X, "[[:space:]]|(?=[[:punct:]])", perl=TRUE)

 [1] "I"       "'"       "m"       "not"     "that"    "good"    "at"      "regex"   "yet"    
[10] ","       ""        "but"     "am"      "getting" "better"  "!"
4

2 に答える 2

9

結果をどうしたいかはわかりませんが、この回答のように負のクラスを使用できる場合があります。

R> strsplit(X, "[[:space:]]|(?=[^,'[:^punct:]])", perl=TRUE)[[1]]
 [1] "I'm"     "not"     "that"    "good"    "at"      "regex"   "yet,"   
 [8] "but"     "am"      "getting" "better"  "!"    
于 2012-11-14T03:56:41.443 に答える