2014-10-10 2 views
0

다음 문자열이 있는데 작은 따옴표 사이에 텍스트를 추출하고 싶습니다.루비에서 정규식을 사용하여 따옴표 사이의 텍스트를 추출하는 방법

javascriptfunction('marie d\'avignon','-','','3') 

나를 위해 문제가 이스케이프 된 작은 따옴표 (가 탈출 문자를 여러 번 수 있습니다) 그래서 경기는 도움말이 감사

marie d\'avignon 
- 
3 

해야

+0

은 그래서 당신은 작은 따옴표를 이스케이프 포함 작은 따옴표 내의 문자열을 인쇄 할? –

+0

오른쪽으로 이스케이프 된 따옴표가 추출 된 문자열 – dc10

+0

에 포함되어야합니다. 이스케이프 된 따옴표가 둘 이상 포함되어 있습니까? 질문을 더 자세히 업데이트하십시오 .. –

답변

1

당신은 시도해 볼 수도 있습니다 정규식 아래

(?<=')(?:[^']*\\')+[^']*(?=') 

DEMO

(?:[^']*\\')+ regex에서는 인용 된 문자열 안에 이스케이프 된 인용 부호가 있어야합니다.

+0

좋은데, 다른 두 문자열의 일치는 어떨까요? 위의 예에서 '-', '', '3'? 정규 표현식이 첫 번째 그룹과 일치합니까? – dc10

+0

이스케이프 된 따옴표가 포함 된 문자열 만 필요하다고하셨습니다. –

+0

죄송합니다. 질문을 업데이트했습니다. 당신의 도움이 인정됩니다 – dc10

0

간단한 아마입니다 :

str = "javascriptfunction('marie d\\'avignon','-','','3')" 
#=> "javascriptfunction('marie d\\'avignon','-','','3')" 
str[/'.*?(?<!\\)'/] 
#=> "'marie d\\'avignon'" 
str.scan /'(.*?(?<!\\))'/ 
#=> [["marie d\\'avignon"], ["-"], [""], ["3"]] 
관련 문제