2014-12-15 24 views
6

Używam http://www.regexper.com, aby wyświetlić wyrażenia regularne reprezentacji picto. Chciałbym sposób, aby idealnie:Wysyłaj wyrażenie do strony internetowej Zwróć dynamiczny wynik (obrazek)

  1. wysłać wyrażenia regularnego do serwisu
  2. otworzyć witrynę z tego wyrażenia wyświetlane

Dla przykładu użyjmy regex: "\\s*foo[A-Z]\\d{2,3}". Chciałbym przejść do strony i wkleić \s*foo[A-Z]\d{2,3} (uwaga na usunięcie podwójnych ukośników). I zwraca:

enter image description here

chciałbym zrobić ten proces od wewnątrz R. Tworzenie funkcji otoki jak view_regex("\\s*foo[A-Z]\\d{2,3}") i stronę (http://www.regexper.com/#%5Cs*foo%5BA-Z%5D%5Cd%7B2%2C3%7D) ze schematem wizualnej będzie otwarty w domyślnej przeglądarce.

Myślę, że RCurl może być odpowiedni, ale jest to dla mnie nowe terytorium. Widzę również podwójny slash jako problem, ponieważ http://www.regexper.com oczekuje pojedynczych ukośników, a R potrzebuje podwójnego. Mogę zmusić R do zwrotu pojedynczego ukośnika na konsolę przy użyciu cat w następujący sposób, więc może to być sposób podejścia.

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

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

myślę szukasz 'URLencode'. – A5C1D2H2I1M1N2O1R2T1

Odpowiedz

8

Spróbuj czegoś takiego:

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" 

Powyższa funkcja po prostu wkleja razem przedrostek www URL ("http://www.regexper.com/#") oraz zakodowanej postaci wzorca wyszukiwania chcesz zapytać.

Po tym, istnieją dwie możliwości:

  • Otwarte wynik w przeglądarce
  • Wystarczy zwrócić pełną zakodowanego URL
+0

@Aando. Idealny. Widzę, że magia jest w "domenie URL". Muszę oddzielić poszczególne części i zrozumieć więcej. Dzięki. +1 –

+0

@ TylerRinker, to naprawdę proste. Właśnie utkwiłem tam argument "przejrzeć" dla zabawy. Szukałem również sposobu, aby dostać się do SVG, ale to trochę trudniejsze. – A5C1D2H2I1M1N2O1R2T1

+1

@AnandaMahto Miałem zamiar zaproponować coś z phantomjs, ale nie jestem pewien czy to jest warte problemów. – zipp