我想从字符串中删除空格,句号和连字符,并用反逗号将结果字符串中的每个元素括起来。此外,我想确保所有字母都大写。
我知道如何删除特殊字符列表,但是由于缺乏对正则表达式或其他字符串操作函数(例如,字符串函数)的经验,因此我无法添加封闭的反逗号。
如何转换字符串,例如
test1 <- "A.1, b-1, C" # start string
test2 <- gsub("[ .-]", "", test1) # remove period and hyphen
生成字符串'A1','B1','C'
?
在用strsplit
删除,
并将大小写转换为大写之后,我们可以在.-
上使用gsub
,然后使用零个或多个空格
strsplit(gsub("[.-]", "", toupper(test1)), ",\\s*")[[1]]
#[1] "A1" "B1" "C"
如果需要单个字符串,则在删除.
和-
之后,捕获单词(\\w+
)并通过将'
包裹在捕获组的反向引用(\\1
)周围来替换它
gsub('(\\w+)', "'\\1'", gsub("[.-]+", "", toupper(test1)))
#[1] "'A1', 'B1', 'C'"
使用
test1 <- "A.1, b-1, C"
test2 <- gsub("[^,\\w]+", "", test1, perl=TRUE)
test2 <- paste0("'", gsub(",", "','", toupper(test2)), "'")
用逗号除引号外的所有非单词字符用gsub("[^,\\w]+", "", test1, perl=TRUE)
,然后用引号内的逗号替换所有逗号,并用paste0("'", gsub(",", "','", toupper(test2)), "'")
用引号引起来。