You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在stringr::str_split()中使用"."作为分隔符?为何结果为空?

stringr::str_split 使用"."作为分隔符的问题解答

1. 为何输出全是空字符串?

stringr::str_split()函数默认将传入的分隔符解析为正则表达式。而在正则语法中,.是一个特殊元字符,代表匹配任意单个字符(除换行符外)。当你用.作为分隔符时,相当于把目标字符串里的每一个字符都当作分隔符来拆分,最终返回的自然就是全空的字符串数组。

比如执行str_split("Who.am.I?", ".")时,每一个字符(包括W、h、o、.、a等)都会被当作分隔符,拆分后就只剩下空字符串了。

2. 如何将"."作为分隔符使用?

有两种简单有效的方法:

  • 正则转义法:在R中,要表示正则里的字面量.,需要用双反斜杠\\.进行转义,代码示例:
library(stringr)
str_split("Who.am.I?", "\\.")
# 结果:[["Who", "am", "I?"]]
  • 固定字符串法:使用fixed()函数包裹分隔符,强制函数将其视为普通字符串而非正则表达式,代码示例:
library(stringr)
str_split("Who.am.I?", fixed("."))
# 结果:[["Who", "am", "I?"]]

内容的提问来源于stack exchange,提问作者Shinji Tokunaga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:27:30