r - 正则表达式:拆分字符串时如何保留所有数字?
问题描述
问题
使用正则表达式,拆分字符串时如何保留所有数字?
概述
我想将字符向量中的每个元素拆分sample.text
为两个元素:仅数字之一和仅文本之一。
当前尝试正在删除最后一位
这个正则表达式 - \\d\\s{1}
- inside ofbase::strsplit()
删除了最后一个数字。下面是我的尝试,以及我想要的输出。
# load necessary data -----
sample.text <-
c("111110 Soybean Farming", "0116 Soybeans")
# split string by digit and one space pattern ------
strsplit(sample.text, split = "\\d\\s{1}")
# [[1]]
# [1] "11111" "Soybean Farming"
#
# [[2]]
# [1] "011" "Soybeans"
# desired output --------
# [[1]]
# [1] "111110" "Soybean Farming"
#
# [[2]]
# [1] "0116" "Soybeans"
# end of script #
任何关于如何拆分sample.text
以保留所有数字的建议将不胜感激!谢谢你。
解决方案
因为您要拆分,所以在正则表达式中消耗\\d
了数字,而不是在输出中。使用lookbehind代替数字:
strsplit(sample.text, split = "(?<=\\d) ", perl=TRUE)
推荐阅读
- angular - TS2322:类型“字符串”不可分配给类型“布尔”
- python - 如何在 Python 制作的 GUI 内的画布或文本小部件上迭代打印结果?
- c++ - (公共)派生类的成员函数无法从 main 访问
- angular - 如何在 Angular 的 App.module.ts 中获取对象实例
- android - 升级到 Angular 12 后,Ionic Android App 卡在白屏上。错误:goog.getLocale 不是函数
- python - 为什么 self.age 显示属性错误,而仅使用 age in condition 允许程序运行?
- char - 当我使用 T2A 时,它会引发堆栈溢出错误。我该如何解决?
- firebase - 云任务运行时 Firestore 并发限制
- flutter - Toggle between pages function returns null (flutter)
- html - 只有一条水平线应用了 CSS,最后一条没有显示