정규 표현식은 적절한 경우를 찾고 메모장에서 일부 단어를 제외합니다. ++ [닫힘]


0

다음과 같은 텍스트가 있습니다.

프랑스 외교 부대에서 평생을 보낸 후, Count de Gruse   그의 부인과 함께 Quai Voltaire의 우아한 저택에 살았습니다. 그는   물론 존경받는 평판을 가진 재능있는 남자   관대 한 호스트와 재미있는 raconteur.

정규식 찾기를 사용하여 모든 적절한 경우를 찾고 싶습니다. 내 제외는 점과 같은 적절한 경우입니다.

. He

인터넷에서 검색 한 결과이 입력을 찾을 수 있습니다.

[a-z] [A-Z][\w]*

문제는 Quai를 Voltaire와 같은 2 ~ 3 단어로 표시하지 않고 어떻게 I, Me, My ...와 같은 적절한 대소 문자를 제외시킬 수 있습니까?

어떻게해야합니까?


왜 이것이 닫혔는지 모르겠다. 그것은 대답되었다. 비록 영어가 모국어가 아니지만 나는 그것을 이해하는 데 어려움이 없었다. 나는 그것을 약간 편집하려고 노력할 것이다.
Jon Coombs

답변:


1

나는 안드레아스에 동의한다. 자, 이것이 일회성 작업이라면 여러 단계로 나누어 볼 수 있습니다. 우선 임시로 예외를 제외하고 다른 문자를 사용하고 나중에 다시 넣는 것이 좋습니다. 다음은 찾기 및 바꾸기입니다.

\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)

환영합니다. 기꺼이 도와주세요!
Jon Coombs


0

내가 추가 할 때

[\w]*

내 정규식은

(?<![.?'!"]) (?!Dad\b|God\b|I\b)[A-Z][\w]*

완벽하게 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.