我想按句点拆分以下字符串。我在strsplit()
参数中使用"."
尝试split
,但没有得到我想要的结果。
s <- "I.want.to.split"
strsplit(s, ".")
[[1]]
[1] "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
我想要的输出是将s
拆分为列表中的4个元素,如下所示。
[[1]]
[1] "I" "want" "to" "split"
我该怎么办?
答案 0 :(得分:29)
在split
的{{1}}参数中使用正则表达式时,您必须使用strsplit()
转义.
,或使用charclass {{ 1}}。否则,您使用\\.
作为其特殊字符含义,&#34;任何单个字符&#34;。
[.]
但这里更有效的方法是使用.
中的s <- "I.want.to.split"
strsplit(s, "[.]")
# [[1]]
# [1] "I" "want" "to" "split"
参数。使用此参数将绕过正则表达式引擎并搜索fixed
的完全匹配。
strsplit()
当然,您可以看到"."
了解更多信息。
答案 1 :(得分:2)
您需要将点.
置于character class内或在其前面加上两个反斜杠以逃避它,因为点是正则表达式中special meaning的字符&#34 ;匹配任何单个字符(换行符除外)&#34;
s <- 'I.want.to.split'
strsplit(s, '\\.')
# [[1]]
# [1] "I" "want" "to" "split"
答案 2 :(得分:1)
除strsplit()
外,您还可以使用scan()
。尝试:
scan(what = "", text = s, sep = ".")
# Read 4 items
# [1] "I" "want" "to" "split"