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

在R语言中分割含|的字符串:如何拆分abc与def?

R语言正确分割包含|的字符串

你遇到的问题是因为|和.都是正则表达式中的特殊元字符:

  • |在正则里表示或逻辑,直接用"|"作为分隔符时,会被解析成匹配空字符串或空字符串,所以会把每个字符都拆分出来,甚至包括首尾的空字符串。
  • ".|."里的.表示匹配任意单个字符,这个表达式相当于匹配任意单个字符(因为A|B匹配A或B,这里两个都是任意字符),所以拆分后所有内容都被分隔符匹配,只剩下空字符串。

正确的解决方案有两种:

1. 使用fixed()将分隔符视为普通文本

str_split支持通过fixed()指定纯文本分隔符,忽略正则规则:

library(stringr)
str_split("abc|def", fixed("|"))

输出结果:

[[1]]
[1] "abc" "def"

2. 对正则特殊字符进行转义

如果要使用正则模式,需要对|进行转义(R中需要双反斜杠\\,因为单个反斜杠是转义R字符串本身的),或者把它放到字符类[]中:

# 双反斜杠转义
str_split("abc|def", "\\|")

# 字符类包裹
str_split("abc|def", "[|]")

这两种写法都能得到正确的拆分结果。

内容的提问来源于stack exchange,提问作者Nam-Tien T.Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:10:33