r - R 正则表达式中的负前瞻问题
问题描述
我有这种数据:
MWE <- c(
"World1 2.6 -4.5 1.5 5.0 -0.2",
"1,2",
"G20 112.9 -4.1 1.6 5.7 0.4"
)
所需的输出是:
[1] " 2.6 -4.5 1.5 5.0 -0.2"
[2] ""
[3] " 112.9 -4.1 1.6 5.7 0.4"
我想区分什么是数字,什么不是(在这种精确的情况下,这"1,2"
是数据挖掘中的一个“错误”,是指“G20”的脚注,只是提到它不是我想要的数字)。
因此,我认为格式的正确正则表达式是[-+]?\\d+\\.\\d
它在积极的意义上起作用:
> MWE2 <- gsub("[-+]?\\d+\\.\\d","blah",MWE)
> MWE2
[1] "World1 blah blah blah blah blah"
[2] "1,2"
[3] "G20 blah blah blah blah blah"
但是,当我尝试通过用消极的前瞻性替换所有不是的东西来隔离价值观时(我从那里了解到这是我正在寻找的东西)(?! )
,所以 : (?![-+]?\\d+\\.\\d)
,但它似乎不起作用(我看过这里并添加了perl=T
选项)
> MWE3 <- gsub("(?![-+]?\\d+\\.\\d)","",MWE,perl=T)
> MWE3
[1] "World1 2.6 -4.5 1.5 5.0 -0.2"
[2] "1,2"
[3] "G20 112.9 -4.1 1.6 5.7 0.4"
解决方案
推荐阅读
- c# - 在 Blazor .NET Core 3.1 中使用 Infragistics.WPF.Excel
- visual-studio - 在预构建事件上更新 nuget 包
- python - 将属性添加到数据集的对象
- python - 如何在 lambda 函数中声明一个全局变量?
- python - LXML 在 Windows 10 中既不下载也不绑定
- python - 如何查看/打印保存在变量中但已删除代码的函数?
- json - 无法识别在 csv 文件中存储和使用的 json 请求正文的正确格式,以便在空手道场景中使用
- jquery - 如何在 jQuery 日期选择器中为禁用日期添加工具提示?
- vb.net - Vb.Net 2019 Windows 窗体应用程序无法在表单加载事件中连接到 Openoffice
- javascript - 使用 QuaggaJS 停止后如何启动相机