1
从这个字符串border-color:#002449;left:74.4%top;37%;
我想使第一个百分比74.4%
变量名为X
,第二个百分比37%
变量名为Y
。如何在R中str_extract百分比?
我试图玩弄这个表达式"^.*?(\\d+)%.*"
但这取出%
符号,只有提取从74.4
任何帮助第二4
将不胜感激。请让我知道是否需要更多信息。
从这个字符串border-color:#002449;left:74.4%top;37%;
我想使第一个百分比74.4%
变量名为X
,第二个百分比37%
变量名为Y
。如何在R中str_extract百分比?
我试图玩弄这个表达式"^.*?(\\d+)%.*"
但这取出%
符号,只有提取从74.4
任何帮助第二4
将不胜感激。请让我知道是否需要更多信息。
s <- "border-color:#002449;left:74.4%top;37%;"
regmatches(s, gregexpr("\\d+(\\.\\d+){0,1}%", s))[[1]]
# [1] "74.4%" "37%"
或
library(stringr)
str_extract_all(s, "\\d+(\\.\\d+){0,1}%")[[1]]
# [1] "74.4%" "37%"
两种变体:' '\\?d + \\ d *%''(当量)和' '[\\ d。] +%''(在这里工作,但关于时期的具体情况较少) – alistaire
谢谢你的回答。我现在正在做:'X < - str_extract(s,“\\ d +(\\。\\ d +){0,1}%”)',这会提取第一个百分比。我确信只需要提取第二个百分比所需的小改动,以便创建'Y'变量,但我不确定它是什么。 – Dre
@Dre,如果你真的想要两个单独的变量,为什么不提取这两个字符串,如我在回答一些变量'e'然后'X < - e [1]; Y < - e [2]'?我不认为用'str_extract'来实现你想要的有一些改变;它返回匹配模式的's'的第一部分(它不能包含's'中的相对位置信息)。 – Julius