2014-12-15 4 views
6

Ich benutze http://www.regexper.com, um eine picto Darstellung reguläre Ausdrücke viel zu sehen. Ich würde einen Weg ideal mögen:Ausdruck an Website senden zurück dynamisches Ergebnis (Bild)

  1. einen regulären Ausdruck
  2. öffnen Sie die Seite mit diesem Ausdruck angezeigt
  3. auf die Website senden

Zum Beispiel wollen wir die Regex verwenden: "\\s*foo[A-Z]\\d{2,3}". Ich würde gehen Sie auf die Website und fügen Sie \s*foo[A-Z]\d{2,3} (beachten Sie die Entfernung der doppelten Schrägstriche). Und es gibt:

enter image description here

Ich mag diesen Prozess tun aus R. eine Wrapper-Funktion wie view_regex("\\s*foo[A-Z]\\d{2,3}") und die Seite (http://www.regexper.com/#%5Cs*foo%5BA-Z%5D%5Cd%7B2%2C3%7D) mit dem visuellen Diagramm erstellen würde mit dem Standardbrowser geöffnet.

Ich denke RCurl kann geeignet sein, aber das ist Neuland für mich. Ich sehe auch den doppelten Schrägstrich als ein Problem, weil http://www.regexper.com einzelne Schrägstriche erwartet und R doppelt benötigt. Ich kann R mit cat wie folgt einen einzelnen Schrägstrich an die Konsole zurückgeben, so kann dies wie folgt sein.

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

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

ich glaube, Sie für 'URLencode' suchen. – A5C1D2H2I1M1N2O1R2T1

Antwort

8

so etwas wie dieses Versuchen:

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" 

Die obige Funktion einfach den Web-URL-Präfix fügt zusammen ("http://www.regexper.com/#") und die codierte Form des Suchmusters Sie abfragen möchten.

Danach gibt es zwei Möglichkeiten:

  • Öffnen Sie das Ergebnis im Browser
  • einfach die vollständige kodierte URL zurückkehren
+0

@Anando. Perfekt. Ich sehe die Magie in 'URLencode'. Ich muss deine einzelnen Stücke auseinander nehmen und mehr verstehen. Vielen Dank. +1 –

+0

@ TylerRinker, es ist eigentlich ziemlich einfach. Ich hatte gerade ein 'Browse'-Argument zum Spaß hineingesteckt. Ich war auf der Suche nach einem Weg, um auch zum SVG zu kommen, aber das ist ein bisschen schwieriger. – A5C1D2H2I1M1N2O1R2T1

+1

@AnandaMahto Ich würde etwas mit Phantomjs vorschlagen, aber ich bin mir nicht sicher, ob es sich lohnt. – zipp

Verwandte Themen