符号前后的字符

时间:2017-06-30 12:20:27

标签: r string substring

我在R中有以下字符串:“xxx,yyy.zz” 我想只得到yyy部分,它位于“,”和“。”之间。

我不想使用正则表达式。

我搜索了半天,在R中发现了许多字符串函数但没有处理“字符前后切割”功能。

有这样的吗?

2 个答案:

答案 0 :(得分:3)

我们可以使用gsub来匹配字符串的开头(,)之后的[^,]*^)的零个或多个字符,后跟一个{ {1}}后跟零个或多个空格(,)或(\\s*)一个点(! - 它是一个元字符,表示任何字符,因此它被转义)后跟其他字符(\\.)直到字符串结尾(.*)并将其替换为空白($

""

如果我们不需要 gsub("^[^,]*,\\s*|\\..*$", "", str1) #[1] "yyy" ,那么regex字符串按strsplit后跟零或更多空格或,,并在转换后选择第二个条目.输出到listvector

[[1]]

数据

strsplit(str1, ",\\s*|\\.")[[1]][2]
#[1] "yyy"

答案 1 :(得分:1)

这可能就足够了:

unlist(strsplit("xxx, yyy. zzz","[,.]"))[2] # get yyy with space, or:
gsub(" ","",unlist(strsplit("xxx, yyy. zzz","[,.]")))[2] # remove space