當添加的空間,我有一個字符串,如下所示:字符串滿足給定模式
a<-c("AbcDef(123)")
> a
[1] "AbcDef(123)"
有其改造爲
a<-c("Abc Def (123)")
換句話說任何有效的方式,我會喜歡在遇到大寫字母或特殊字符時添加空格(
當添加的空間,我有一個字符串,如下所示:字符串滿足給定模式
a<-c("AbcDef(123)")
> a
[1] "AbcDef(123)"
有其改造爲
a<-c("Abc Def (123)")
換句話說任何有效的方式,我會喜歡在遇到大寫字母或特殊字符時添加空格(
一種可能性:
gsub("(?<=[^A-Z(])(?=[A-Z(])", " ", a, perl=T)
試試這個:
gsub("(?<=.)([A-Z(])", " \\1", a, perl = TRUE)
捐贈:
[1] "Abc Def (123)"
如果用空格字符串有沒有一個字塊就可以簡化爲這樣:
gsub("(.)([A-Z(])", "\\1 \\2", a)
礦的有點kludgy,並使用兩個gsub
s。內部gsub
增加空格,外部gsub
刪除前導空格。
a <- "AbcDef(123)"
gsub("^\\s", "", gsub("([A-Z(])", " \\1", a))
這不適用於像「AbcDef(123)AaA(fsfsd)AAA」這樣的字符串。 @ droopy的解決方案將適用於任何字符串 –
好點。已修改。 –