stringr::str_replace()提取R中的有符号数字



我正在尝试提取:-1960.85

来自:

">Return on Equity</span><!-- react-text: 141 --> <!-- /react-text --><!-- react-text: 142 -->(ttm)<!-- /react-text --><sup aria-label="KS_HELP_SUP_undefined" data-reactid="143"></sup></td><td class="Fz(s) Fw(500) Ta(end)" data-reactid="144">-1,960.85%</td></tr></tbody></table></div><div data-reactid="145"><h3 class=""

我正在使用以下内容来提取它:

stringr::str_extract(loc, "[:punct:]\d+\.\d+\D")

不幸的是,这认为我指的是1986.85中的逗号,并完全剪切了1。顺便说一下,我不想要逗号。如何使用str_extract()(或任何其他方法(来获得所需的输出?

loc <- ">Return on Equity</span><!-- react-text: 141 --> <!-- /react-text --><!-- react-text: 142 -->(ttm)<!-- /react-text --><sup aria-label="KS_HELP_SUP_undefined" data-reactid="143"></sup></td><td class="Fz(s) Fw(500) Ta(end)" data-reactid="144">-1,960.85%</td></tr></tbody></table></div><div data-reactid="145"><h3 class=""

在上面的例子中,您可以通过将,digits一起包含为[0-9]来修复它。

stringr::str_extract(loc, "[:punct:][0-9,]+\.\d+\D")
#[1] "-1,960.85%"

另一种选择是:

library(stringr)
str_replace(str_extract(loc, "[:punct:][0-9,]+\.\d+\D"),",","")
#[1] "-1960.85%"

但是,如果您的内容类型为html/xml,那么正如@TimBiegeleisen所建议的,您应该在分析文本之前使用合适的解析器来解析文本

相关内容

  • 没有找到相关文章

最新更新