r - 按多个字符拆分字符串
问题描述
我想通过向量中定义的多个分隔符分割一个字符:
text1 <- "aweoiutw839572/)(&2aslk2468"
text2 <- "147we547iu5erhg24tzu"
dat <- rbind(text1, text2)
vector <- c("we", "iu", "24")
结果应该是:
var1 del1 var2 del2 var3 del3 var4
a we o iu tw839572/)(&2aslk 24 68
147 we 547 iu 5erhg 24 tzu
有什么想法strsplit
吗?
解决方案
我们可以使用strsplit
以下模式在此处使用环视:
(?<=we|is|24)|(?<=.)(?=we|iu|24)
上述正则表达式的基本思想是,只要在当前位置,awe|is|24
先于或继续,就应该发生拆分。值得注意的是(?<=.)
外部交替左侧的额外后视。这是必要的,因为 R 在strsplit
. 有关详细信息,请参见此处。
text1 <- "aweoiutw839572/)(&2aslk2468"
vector <- c("we", "iu", "24")
terms <- paste0(vector, collapse="|")
regex <- paste0("(?<=", terms, ")|(?<=.)(?=", terms, ")")
strsplit(text1, regex, perl=TRUE)
[[1]]
[1] "a" "we" "o"
[4] "iu" "tw839572/)(&2aslk" "24"
[7] "68"
演示
推荐阅读
- vue.js - Ant design vue嵌套表中的不同数据
- c# - 模拟的 HttpClientHandler 上的 Moq Verify() 无法访问 Content 对象,因为它已被释放
- ruby - Ruby数组包含类型?
- python - 如何更改我的代码以反转某些子字符串?
- sql - BigQuery SUM 函数令人惊讶的行为
- angular - 无法将日期设置为 Angular 中的 ng Bootstrap 日期选择器
- python - 在 PySpark Dataframe 中结合旋转和分组聚合
- swift - 如何在本地 json 文件 iOS Swift 中写入数据?
- c# - 如何在 C# 中将组合框背景颜色绑定到面板背景颜色
- reactjs - 如何根据 IP 重定向到自定义页面