我在html文件中的span标记内有一些文本
我需要提取它,我到目前为止尝试了这个但它似乎不起作用:
HTML:
"<span id=\"MainContent_lblGenAssessment\">$866,250</span></dd>"
我试过了:
gsub(x = "<span id=\"MainContent_lblGenAssessment\">$866,250</span></dd>"r,pattern = ">(.*?)<",replacement = "\\1")
但它似乎无用,我如何提取866,250?
编辑:它必须使用默认的R库,我无法安装任何软件包。
答案 0 :(得分:5)
正确的方法是使用解析器解析HTML,如下所示:
library(rvest)
x %>% read_html() %>% html_text()
# [1] "$866,250"
如果必须使用正则表达式进行操作(非常糟糕的主意,如果它是针对大量数据的话,或者很难检查结果,例如在程序设计中用法),你可以用:
sub('.*>([^<]+)<.*', '\\1', x)
# [1] "$866,250"
如果span
标记位于更多HTML的中间,则您必须添加更多正则表达式以进行指定。
正则表达式寻找
.
重复0次或更多次*
,>
( ... )
[^ ... ]
以外的任何字符
<
+
<
.
重复0次或更多次*
,并将其替换为第一个捕获的组\\1
。
答案 1 :(得分:2)
试试这个:
([\d,]*)<\/span>
假设您要提取的每个号码都在<span>
标记