发送表达到网站返回动态结果(图片)

时间:2014-12-15 17:35:28

标签: r rcurl

我使用http://www.regexper.com来查看picto表示正则表达式。我想要一种理想的方式:

  1. 将正则表达式发送到网站
  2. 打开显示该表达式的网站
  3. 例如,让我们使用正则表达式:"\\s*foo[A-Z]\\d{2,3}"。我要去他的网站并粘贴\s*foo[A-Z]\d{2,3}(注意删除双斜线)。它返回:

    enter image description here

    我想从内部执行此过程。创建一个包含view_regex("\\s*foo[A-Z]\\d{2,3}")的包装函数,使用可视化图表的页面(http://www.regexper.com/#%5Cs*foo%5BA-Z%5D%5Cd%7B2%2C3%7D)将使用默认浏览器打开。< / p>

    我认为RCurl可能是合适的,但对我来说这是一个新的领域。我也看到双斜杠是一个问题因为http://www.regexper.com期望单斜杠而R需要加倍。我可以让R使用cat向控制台返回一个斜杠,如下所示,这可能就是如何处理。

    x <- "\\s*foo[A-Z]\\d{2,3}"
    
    cat(x)
    \s*foo[A-Z]\d{2,3}
    

1 个答案:

答案 0 :(得分:8)

尝试这样的事情:

Query <- function(searchPattern, browse = TRUE) {
  finalURL <- paste0("http://www.regexper.com/#", 
         URLencode(searchPattern))
  if (isTRUE(browse)) browseURL(finalURL)
  else finalURL
}

x <- "\\s*foo[A-Z]\\d{2,3}"
Query(x)             ## Will open in the browser
Query(x, FALSE)      ## Will return the URL expected
# [1] "http://www.regexper.com/#%5cs*foo[A-Z]%5cd%7b2,3%7d"

上述功能只是将网址前缀("http://www.regexper.com/#")和您要查询的搜索模式的编码形式粘贴在一起。

之后,有两种选择:

  • 在浏览器中打开结果
  • 只需返回完整的编码网址
  • 即可