r - 如何使用 '|' 字符进行 strsplit,它的行为异常?

标签 r regex string special-characters

我想在模式“|”处拆分一串字符


unlist(strsplit("I am | very smart", " | "))

[1] "I"     "am"    "|"     "very"  "smart"

或者
gsub(pattern="|", replacement="*", x="I am | very smart")    

[1] "*I* *a*m* *|* *v*e*r*y* *s*m*a*r*t*"

最佳答案

问题是默认情况下 strsplit口译 " | "作为正则表达式,其中|具有特殊含义(如“或”)。

使用 fixed争论:

unlist(strsplit("I am | very smart", " | ", fixed=TRUE))
# [1] "I am"       "very smart"

副作用是计算速度更快。

stringr 选择:
unlist(stringr::str_split("I am | very smart", fixed(" | ")))

关于r - 如何使用 '|' 字符进行 strsplit,它的行为异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6382425/

相关文章:

r - 更有效地覆盖多边形或从空间线中提取()栅格数据

string - 返回字符串文字的 R 函数

r - 在 R data.frame 中设置从零开始的唯一 ID

python - 难以理解正则表达式方法 findall

python - 用于提取以 Mr.|Mrs|The|DR 开头的姓名的正则表达式

ios - 如何编写正则表达式?

r - 将向量中的每个元素与自身相乘以创建矩阵

java - 将多行文本值设置为 imageview 不起作用

string - 如何用 jackson 序列化长字符串?

c++ - 将组合框中键入的字符串与其项目进行比较