在R中的字符串之前提取数值

在R中的字符串之前提取数值,r,R,我一直在处理正则表达式字符串和strsplit,但不知道如何解决我的问题 我有一个html文档集合,其中始终包含短语“人民拥有这些”。我想提取这个短语前面的数字。i、 “732234人拥有这些”——我希望能捕捉到732234这个数字(包括逗号,尽管我不在乎它是否被删除)。 数字和短语始终由一个字母包围。我尝试使用Xpath,但这似乎比正则表达式更难。非常感谢您的任何帮助或建议 示例字符串:>742811人拥有这些 p->742811请您尝试以下内容 val <- "742,811 peop

我一直在处理正则表达式字符串和strsplit,但不知道如何解决我的问题

我有一个html文档集合,其中始终包含短语
“人民拥有这些”
。我想提取这个短语前面的数字。i、 “732234人拥有这些”——我希望能捕捉到732234这个数字(包括逗号,尽管我不在乎它是否被删除)。 数字和短语始终由一个字母包围。我尝试使用Xpath,但这似乎比正则表达式更难。非常感谢您的任何帮助或建议

示例字符串:>742811人拥有这些
p->742811

请您尝试以下内容

val <- "742,811 people own these"
gsub(' [a-zA-Z]+',"",val)

说明:此处使用R的gsub(全局替换)函数。将条件放在此处,它应该将所有出现的空格替换为小字母或大写字母,变量
val

尝试使用
stru-extract\u-all
stringr
库中:

str_extract_all(data, "\\d{1,3}(?:,\\d{3})*(?:\\.\\d+)?(?= people own these)")

请不要使用正则表达式处理HTML。你可以发布一个实际HTML的代表性示例或到源代码的链接吗?您应该使用XML操作。有两个人在这条充满危险的道路上提供帮助,这有点令人难过。它工作得几乎完美,返回了大量的空字符和我想要的值。有什么原因它似乎也返回了一堆列出的NA吗?@Permforast:鉴于缺乏任何示例,怎么可能有人知道这个问题的答案?@Permforast我现在不在R控制台前,但我建议从一个较小的测试文本开始,看看您是否可以进行一些调试。非常感谢,我刚刚完成了一个快速修复,所以我使用“str_extract”返回一个字符向量而不是列表,然后使用x[!is.na(x)](其中x是字符向量)删除na并获得最终值。我将继续阅读Xpath,但这是一种快速获取所需内容的方法。
str_extract_all(data, "\\d{1,3}(?:,\\d{3})*(?:\\.\\d+)?(?= people own these)")