我在html文件中的span标记内有一些文本
我需要提取它,到目前为止我尝试了这个但它似乎不起作用:
HTML:
"<span id=\"MainContent_lblGenAssessment\">$866,250</span></dd>"
Run Code Online (Sandbox Code Playgroud)
我试过这个:
gsub(x = "<span id=\"MainContent_lblGenAssessment\">$866,250</span></dd>"r,pattern = ">(.*?)<",replacement = "\\1")
Run Code Online (Sandbox Code Playgroud)
但它似乎没用,我怎样才能提取866,250?
编辑:它必须使用默认的R库,我无法安装任何包.
在正确的做到这一点的方法是用一个解析器来解析HTML,就像这样:
library(rvest)
x %>% read_html() %>% html_text()
# [1] "$866,250"
Run Code Online (Sandbox Code Playgroud)
如果你必须使用正则表达式(一个非常糟糕的主意,如果它是针对大量数据或者很难检查结果,例如在程序化使用中),你可以这样做:
sub('.*>([^<]+)<.*', '\\1', x)
# [1] "$866,250"
Run Code Online (Sandbox Code Playgroud)
如果该span标记位于更多HTML的中间,则必须添加更多正则表达式来指定.
正则表达式寻找
.重复0次或更多次的人物*,>( ... )
[^ ... ]
<+<.重复0次或更多次的任何字符*,并将其替换为第一个捕获的组,\\1.