소프트웨어 Emeditor Macro 다중 "\^(.+)?\^" 치환 질문입니다.
2024.03.13 07:07
Emeditor Macro 다중 "\^(.+)?\^" 치환 질문입니다.
매크로를 사용하여 아래의 예문 줄을 다음 줄로 바꾸는 것입니다.
"^"와 "^" 사이에 있는 공백을 "-"(하이픈)으로 바꾸어 주는 것입니다.
한 줄에 하나만 오면 잘 치환이 되는데, 한 문장에서 2개 혹은 3개가 오는 경우에는 구분이 안됩니다. 이런 경우에 매크로 수식을 어떻게 수정해야 할 지 고수님들의 도움을 부탁드립니다.
행복한 하루 되십시오.
document.selection.Replace "\^(.+)?\^",eeReplaceAll Or eeFindReplaceRegExp,0
document.selection.Find "\^(.+)?\^",eeFindNext Or eeFindReplaceRegExp Or eeFindSelectAll,0
document.selection.Replace " ","Ξ",eeFindReplaceSelOnly Or eeReplaceAll,0
1. 그(녀)는 *우선 해가 되지 않는*^primum non nocere^ *자연의 치유력*^vis medicatrix naturae^ 또는 성장원^physis^에서 지지를 받는다.
-> 그(녀)는 *우선 해가 되지 않는*^primumΞnonΞnocere^ *자연의 치유력*^visΞmedicatrixΞnaturae^ 또는 성장원^physis^에서 지지를 받는다.
실제 매크로 치환 -> 1. 그(녀)는 *우선 해가 되지 않는*^primumΞnonΞnocere^Ξ*자연의Ξ치유력*^visΞmedicatrixΞnaturae^Ξ또는Ξ성장원^physis^에서 지지를 받는다.
2. *전두엽 치매*^dementia praecox^)과 '파편화된 정신'^fragmented mind^으로 보는 블로일러의 관점과 일치하는 것이다.
-> *전두엽 치매*^dementiaΞpraecox^과 '파편화된 정신'^fragmentedΞmind^으로 보는 블로일러의 관점과 일치하는 것이다.
실제 매크로 치환 -> 2. *전두엽 치매*^dementiaΞpraecox^)과Ξ'파편화된Ξ정신'^fragmentedΞmind^으로 보는 블로일러의 관점과 일치하는 것이다.
3. *조현병적 혼합*^schizophrenic confusion^과 *자기 분열*^self fragmentation^과 *전두엽 치매*^dementia praecox^과 '파편화된 정신'^fragmented mind^ 등이다.
-> *조현병적 혼합*^schizophrenicΞconfusion^과 *자기 분열*^selfΞfragmentation^과 *전두엽 치매*^dementiaΞpraecox^과 '파편화된 정신'^fragmentedΞmind^ 등이다.
실제 매크로 치환 -> *조현병적 혼합*^schizophrenicΞconfusion^과Ξ*자기Ξ분열*^selfΞfragmentation^과Ξ*전두엽Ξ치매*^dementiaΞpraecox^과Ξ'파편화된Ξ정신'^fragmentedΞmind^ 등이다.
정규식에서 (.+?)는 "최소한 한 번 이상의 모든 문자를 일치시키되 가능한 한 가장 적은 문자를 일치시키도록 강제"하는 비탐욕적(non-greedy) 일치 패턴을 나타냅니다. 이것은 모든 문자열을 일치시키지만 가능한 한 가장 짧은 부분 문자열에 일치시키려고 시도합니다. 이 패턴은 주로 문자열에서 최소한의 일치를 찾을 때 사용됩니다.
(.*)?해당 패턴은 문자열에서 해당 패턴에 일치하는 부분 문자열을 발견할 수도 있고, 발견하지 못할 수도 있습니다.
이것은 일반적으로 선택적인 부분을 나타내며, 매치되는 부분이 없거나 한 번만 매치되도록 원할 때 사용됩니다.
예를 들어, "abcabc"라는 문자열에서 (.+)?를 사용하면 아무것도 매치되지 않거나 첫 번째 "a"만 매치될 수 있습니다. 만약 (.+)로 변경한다면, 문자열 전체를 일치시키려고 시도할 것입니다.
(.+)? : 최대한 일치
(.+?) : 최소한 일치
두 정규식의 의미는 완전히 정반대로 틀립니다
필요한 부분만 일치시키기 위해서는 항상 최소한의 일치를 시켜야 합니다