나는 안드레아스에 동의한다. 자, 이것이 일회성 작업이라면 여러 단계로 나누어 볼 수 있습니다. 우선 임시로 예외를 제외하고 다른 문자를 사용하고 나중에 다시 넣는 것이 좋습니다. 다음은 찾기 및 바꾸기입니다.
\b(I|God|Dad)\b
@\1
이것은 우리에게 다음과 같은 것을줍니다. (저와 저는 영어로 대문자로 쓰지 않습니다) :
Did @I write this to @God, @Dad, or my wife? After a lifetime in the
French diplomatic corps, the Count de Gruse lived with his wife
in an elegant townhouse on Quai Voltaire! He was a likeable man,
cultivated of course, with a well-deserved reputation as a
generous host and an amusing raconteur.
거기에서 대소 문자를 구별하는 regex와 negative-lookbehind를 사용하여 대문자로 된 단어 앞에 문장 경계를 따르지 않는 하나 이상의 공백이 오는 지 확인하십시오.
(?<![.?'!"])[ ]+[A-Z]
위의 예에서 '프랑스어'와 같이 단단히 감싸 인 텍스트의 경우이 방법은 실패합니다.
정규식은 다소 부서지기 쉽기 때문에 일회성 작업이 아닌 경우 작은 프로그램 / 스크립트가 필요할 수 있습니다. (또는 어쩌면 매크로.)
네가 요구 한 것은 여기에있다. 네거티브 lookahead를 통합하여 한 걸음 씩 그렇게해라. :)
(?<![.?'!"]) (?!Dad\b|God\b|I\b)[A-Z]
팁 : 대소 문자를 구분하지 않는 체크 박스를 사용하지 않거나 사용하지 않으려면이를 정규 표현식 앞에 넣을 수 있습니다.
(?c)