我有一个字符串
text = "Math\n \n \n 600 rubles / 45 min."
text2 = "Math\n \n \n in a group"
我想更换
\n \n \n
与 " "
仅当数字跟随时。因此,我想要:
"Math 600 rubles / 45 min."
"Math\n \n \n in a group"
我试过
gsub("\n \n \n [\\d]", " ", text)
,但它也替换了第一个数字。
最佳答案
您可以使用匹配 3 次 \n
的模式。后跟 6+ 个空格,然后捕获数字并替换为对组 1 的反向引用:
gsub("(?:\n {6,}){3}(\\d)", " \\1", text)
见 R demo
详情
(?:\n {6,}){3}
- 连续出现 3 次:\n
- 换行 {6,}
- 6 个或更多空格 (\\d)
- 第 1 组(引用替换模式中的 \1
):任何数字。 关于删除数字前的模式并保留这些数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47512066/