Maciej B. Doktorant
Temat: Szukanie wyrażenia/frazy w tekście
Witam,mam następujący problem.
Chce w tekście znaleźć frazy, które rozpoczynają się "title:" lub "url:" ale tekst następujący po tych frazach składa się z liter, cyfr, znaków interpunkcyjnych i spacji a do tego mogą być za każdym razem innej długości.
Przykładowo:
title:"Mieszkanie na sprzedaż - Poznań, Grunwald, Krauthofera, 42m2",
address:"Poznań, Krauthofera",
img:"http://m.onet.pl/_m/60528da8ed8f4fd533d473f44fce059e,2,59.jpg",
url:"166332576,mieszkanie,Mieszkanie_na_sprzedaz_-_Poznan__Grunwald__Krauthofera__42m2,ogloszenie.html",
a wynikiem ma być lista:
"title: <tytuł1>" "title:<tytuł2>" itd.
"url: <url1>" "url:<url2>" itd.
a o to kod z tymi danymi:
x<-"SearchPoisCollection.push({\n type:\"nier\", \n iconUrl:\"/_d/poi_graphics/ogloszenia_icon.swf\", \n id:\"166404184\", \n x:\"16.8904\", \n y:\"52.3914\", \n kind:\"mieszkanie\", \n accurate:\"ulica\", \n title:\"Mieszkanie na sprzedaĹĽ - PoznaĹ„, GĂłrczyn, Jarochowskiego, 52m2\", \n address:\"PoznaĹ„, Jarochowskiego\", \n img:\"http://m.onet.pl/_m/669f9004d8991418e71740aca03233b7,2,59.jpg\",\n url:\"166404184,mieszkanie,Mieszkanie_na_sprzedaz_-_Poznan__Gorczyn__Jarochowskiego__52m2,ogloszenie.html\", \n area:\"52 m²\", \n price:\"275 000 zĹ‚\", \n isinnote:\"0\"\n });SearchPoisCollection.push({\n type:\"nier\", \n iconUrl:\"/_d/poi_graphics/ogloszenia_icon.swf\", \n id:\"166146962\", \n x:\"16.8874\", \n y:\"52.3873\", \n kind:\"mieszkanie\", \n accurate:\"ulica\", \n title:\"Mieszkanie na sprzedaĹĽ - PoznaĹ„, GĂłrczyn, KuĹşnicza, 63m2\", \n address:\"PoznaĹ„, KuĹşnicza\", \n img:\"http://m.onet.pl/_m/3af28770c56ea9b13d6977981a8cc44b,2,59.jpg\",\n url:\"166146962,mieszkanie,Mieszkanie_na_sprzedaz_-_Poznan__Gorczyn__Kuznicza__63m2,ogloszenie.html\", \n area:\"63 m²\", \n price:\"319 000 zĹ‚\", \n isinnote:\"0\"\n });"
Wiem jak mogę określić długość występowania danego wyrażenia ale nie wiem jak mogę zapisać w wyrażeniach regularnych wszystkie możliwe znaki, które występują do przecinka kończącego daną linię.
Napisałem coś takiego:
library(stringr)
#dla id
idiki<-str_extract_all(x,'id:\\"\\d{1,}')
#dla wsp geograficznych
iks<- str_extract_all(x,'x:\\"\\d{2}\\.\\d{1,}')
igrek<- str_extract_all(x,'y:\\"\\d{2}\\.\\d{1,}')
#typ
typ<-str_extract_all(x,'kind:\\"[[:alnum:]]{1,}')
#a teraz ta część, którą nie wiem jak zapisać
title<-str_extract_all(x,'title:\\"[[:alnum:]]{1,}')
próbowałem również kombinować z:
title<-str_extract_all(x,'title:\\"(([[:alnum:]]){1,}(\\s){1,}){1,}') ## i tak dalej
######### EDIT#########
#próbowałem jeszcze:
title<-str_extract_all(x,'title:\\"[[:print:]]{1,}'
ale takie rozwiązanie możne nie działać dla różnych znaków, które pojawiają się po dwukropku.
Z góry dziękuję za pomoc :)
pozdr,
MBMaciej B. edytował(a) ten post dnia 22.02.12 o godzinie 18:33