2013-10-26 1 views

답변

1
echo "{\i it is this}" | sed 's/{\\i //;s/}//' 
+0

과 두 개의 괄호 안의 괄호와 전체 텍스트를 지우지 만 다음 예제와 같이 different() 사이에있는 텍스트를 삭제하지 않습니까? (출 20:12, 디 5:16), 자애없는 자 (출 21:17) – AMDG

0

검색 : \{\\i (.+)\}

가 교체 : ({} 사이의 텍스트가 } 기호를 포함 할 수없는 경우 첫 번째가 더 효율적입니다) \ 1

+0

검색이} \ 내가 DIA {(} 두 번째에 도달 \ 내가 올}과 내가 처음에 그것을 유지하려면, 어떻게해야합니까?, 나중에 라 tiniebla llamó는 { – AMDG

+0

당신이해야 '+'한정 기호 다음에 물음표를 추가하여 Sniffer의 대답처럼 욕심을 없애십시오 : – psxls

2

다음 두 식의 각 시도 :

\{\\i ([^}]+)\} 

또는

\{\\i (.+?)\} 

두 경우 모두 \1으로 바꿉니다. 당신의 대답에

+0

두 표현식간에 기능상의 차이는 없습니다 - 두 번째 것은 중첩 된 {..}에 반응하지 않을 것입니다. 실제 문제는 (1) 중첩 될 수 있습니다. {..} 또는 (2) 이탤릭 텍스트는 이스케이프 된 리터럴'\}'을 포함 할 수 있습니다. 그것은 OP를 위해 일할 수도 있지만 이것은 실제 코드로 더 잘 처리 될 수 있습니다. – usr2564301

+0

@Jongware 피드백에 감사드립니다. OP는 Notepad ++를 사용하고 있습니다. 정규식은 중첩에 적합하지 않습니다. 대부분의 상황에서 구조. –