我在 R 中有以下字符串:“xxx, yyy.zzz” 我只想获取 yyy 部分,位于“,”和“.”之间
我不想使用正则表达式。
我找了半天,发现R中有很多字符串函数,但没有一个处理“字符前/后剪切”的函数。
有这样的吗?
最佳答案
我们可以使用 gsub
从头开始匹配零个或多个不是 ,
([^,]*
) 的字符 ( ^
) 的字符串,后跟 ,
后跟零个或多个空格 (\\s*
) 或 (!
) 一个点 (\\.
- 它是一个元字符,表示任何字符,因此会被转义),后跟其他字符 (.*
),直到字符串末尾($
) 并将其替换为空白 (""
)
gsub("^[^,]*,\\s*|\\..*$", "", str1)
#[1] "yyy"
如果我们不需要regex
,则strsplit
字符串由,
后跟零个或多个空格或使用。
并选择将 list
输出转换为 vector
后的第二个条目 ([[1]]
)
strsplit(str1, ",\\s*|\\.")[[1]][2]
#[1] "yyy"
数据
str1 <- "xxx, yyy. zzz"
关于r - 符号之前/之后的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44846385/