2014-03-31 4 views
1

정규식을 사용하여 단일 백 슬래시가 포함 된 문자열과 일치 시키려고합니다. 예를 들어, 정규식에서 단일 백 슬래시 일치.

library(RCurl) 
x <- getURL("http://www.nytimes.com") 

x

지금 많은 단일 백 슬래시를 포함하는 웹 페이지의 내용을 포함하고 있습니다. 예를 들어,이 문자열의 시작 부분 근처에 바로 lang=\"en\"이 있습니다. 이제이를 정규 표현식 함수 (예 : grep)와 비교하려고합니다. 그러나

> grep("lang=\\", x) 
Error in grep("lang=\\", x) : 
    invalid regular expression, reason 'Trailing backslash' 

하고,

> grep("lang=\\\\", x) 
integer(0) 

그리고 R은 불완전한 조항으로 grep("lang=\\\", x)을 볼 수로 중 하나가 작동하지 않는 세 개의 백 슬래시를 사용하여.

답변

1

난 당신이 백 슬래시 문자 그대로 해석되도록 fixed = TRUE을 사용하려는 생각 :

grep("lang=\\", x, fixed = TRUE) 

그러나 예에서이 여전히 반환 정수를 제공 (0). 그 이유는 인쇄 된 x 값에서 볼 수있는 \가 이스케이프 문자 그 자체이기 때문입니다. 'lang = "을 (를) 검색해보십시오. 대신 이스케이프 인용을 참고하십시오.

grep("lang=\"", x, fixed = TRUE)