2013-01-08 4 views
0

나는 일부 웹 스크래핑 일을 내가 grep()에 원하는입니다 (my_html의 예를 시도 내가그렙() 함수

를 원하는 링크가있는 문자열, my_html을 가지고했습니다 더 이상)

my_html <- 'stuff more stuff ... 
<TD ><A CLASS=my_link HREF=\"https://www.stuff.com/secure-bin/my_club/myrep.cgi/tpw9109.cry?scrtpw9109.cry\"> 
other stuff 
<p> www.google.com </p> 
end' 



my_pattern <- "<TD><A CLASS=my_link HREF=*>" 
grep(my_pattern,x=my_html,value=TRUE) 

나에게

character(0) 

를 얻을 수있는 나는 문제가 재치를 할 생각 h 패턴의 특수 문자는 있지만 치료법을 알지 못합니다.

+0

''grep'의 매개 변수로'fixed = TRUE'가 도움이됩니까? –

+0

아니, 그것을 시도했다. – Yoda

+1

'*'는 R 정규식에서 'anything'을 의미하지 않으며 '앞의 문자가 0 개 이상'을 의미합니다. ''도' '과 일치하지 않습니다 –

답변

1
> sub('(^.+HREF=\\\")(.+)(\".+)', "\\2", my_html) 
[1] "https://www.stuff.com/secure-bin/my_club/myrep.cgi/tpw9109.cry?scrtpw9109.cry" 

는 기본적으로 따옴표를 대표하는 하나의 백 슬래시를 표현하기 위해 2 백 슬래시를 사용하여 HREF=\"\" 전에 아무것도 버린다. 두 번째로 일치하는 섹션으로 다음 큰 따옴표 앞에 무엇이든 포함하고 그 마크에서 세 번째 섹션으로 끝까지 무엇이든 포함합니다. 따라서 중간 매칭 섹션 (존재하는 경우) 만 리턴해야합니다.

+0

감사합니다. – Yoda