내가 사이에있는 텍스트 추출 싶다 "하나" 및 "이"과 사이의 "세" 및 "이" 문자열의 S1"하나 즐 1 2 : bla2 3 : bla3 ". 그러나 "2 : bla2"은 문자열 s2에 반드시 포함될 필요는 없습니다. 따라서 s2"one : bla 1 three : bla3" 일 수도 있습니다.선택적 패턴이있는 정규식을 사용하여 텍스트를 추출하는 방법은 무엇입니까?
나는 다음과 같은 R-코드와 함께 올하지만 한 "이 ..."주위에 추가 괄호 내 시도와 물음표가 작동하지 않습니다
library(gsubfn)
s1 <- "one: bla 1 two: bla2 three: bla3"
s2 <- "one: bla 1 three: bla3"
strapplyc(s1, "one: (.*) (two: (.*))? three: (.*)")
strapplyc(s2, "one: (.*) (two: (.*))? three: (.*)")
무엇 단지'\ w *에 분할에 대한 (일 | 두 | 세) : \ * w '? –
두 개가 존재하지 않는다면 정규 표현식은 세 개 앞에 두 개의 공백이 있어야하지만 s2에 세 개가 오기 전에 공백이 하나만 있어야하므로 괄호 안에 두 번째 공백을 두어보십시오. 'strapplyc (s2, 하나 : (. *) (2 : (*))? 3 : (bla3) ")' –
@ G.Grothendieck 귀하의 제안은 s2에서 효과가있는 것으로 보입니다. s1. – tover