如何使用Stringr在特定的一组qout之间提取字符串的一部分?

艾伦·A

我需要提取在一组qoutes之间的字符串的特定部分,并且我需要做到这一点,而又不获取也在qoutes之间的字符串的后续部分。

例如,如果我只想提取此标记标签中viewBox属性之后的qoutes之间的值;

"<svg height=\"512pt\" viewBox=\"-9 0 512 512\" width=\"512pt\" xmlns=\"http://www.w3.org/2000/svg\">"

我希望能够提取各种不同的符号,并且由于这个原因,我尝试在stringr中使用[:print:]命令。但是我无法将提取限制为所需的qoutes集。而且,viewBox只是一个示例,因此对此没有特定的解决方案。

string <- "<svg height=\"512pt\" viewBox=\"-9 0 512 512\" width=\"512pt\" xmlns=\"http://www.w3.org/2000/svg\">"

string %>% 
  str_extract("(?<= viewBox=\")[:print:]+(?<!\" )")

当前结果是;

"-9 0 512 512\" width=\"512pt\" xmlns=\"http://www.w3.org/2000/svg\">"

而所需的结果是:

"-9 0 512 512"
阿克伦

"正则表达式查找后,我们可以匹配非双引号()的字符

library(stringr)
str_extract(string, '(?<=viewBox=")[^"]+')
#[1] "-9 0 512 512"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章