2010-05-20 5 views
2
에서 정규식으로 문자열의 일부를 사용

나는 문자열을 가지고 내가이 일을 할까? 나는 기본 정규식 검색을 위해 %s을 사용하고 GVIM에서 대체하지만, 이것은 나의 일반적인 사용법과는 조금 다릅니다.추출 및 GVIM

감사

답변

1

당신은이를 사용할 수 있습니다

%s/\vdoCall\(<(\w*)>,/\1 = doCall(\1,/ 

\v 정규 표현식에서 "더 매직"수 - 여기에 꼭 필요한 것은을하지만 보통 식을 간단하게하기 위해 그것을 사용할 수 있습니다. <…>은 단어 경계와 일치하며 중간 부분은 첫 번째 매개 변수와 일치하고 첫 번째 캡처 그룹에 넣습니다. 대체품은 \1을 사용하여 해당 캡처 그룹에 액세스하고 오른쪽 두 위치에 삽입합니다.

+0

실제 사용 사례가 약간 다릅니다. doCall (valA, val.valB); - 위 질문에 대한 답변이 제 초기 질문에는 좋았지 만 추가 답변에는 도움이되지 않았습니다. 작동하지 않습니다. –

+0

@ André : * 첫 번째 인수에 점이 표시되지 않으면 확실히 작동합니다. 이 경우 적절하게'\ w '를 수정해야합니다. '\ w | \ .'를 써서 도트를 허용하고, ** 및 **는보다 작거나 큼 기호를 제거하십시오. –

+0

아, 그래, 괜찮아 - 고마워! 이 마술을 지금 공부해야 할거야 ... –