2009-07-21 4 views
125

모든 일치 (단 하나의 문자)를 대문자로 바꿀 수 있기를 기대하면서 정규식을 작성했습니다. 나는 EditPad Pro를 사용하고 있습니다 (단 한 번만해볼 필요가 있기 때문에 자유롭게 시도 할 수있는 한 다른 도구를 사용해도됩니다.)정규식 (EditPad Pro)을 사용하여 문자를 대문자로 변환

배경 : 대소 문자를 구분하는 응용 프로그램에서 사용하는 텍스트 파일이 매우 길고 일부 단어는 대문자 대신 소문자로 시작하므로 응용 프로그램이 손상됩니다. 이것은 손으로하는 데 시간이 오래 걸리며 (악의적 인) 소문자의 발생이 매우 구체적이기 때문에 정규 표현식 없이는 매우 복잡합니다.

선택 정규 표현식을 작성 했으므로 이제는 역 참조 ($ 1은 정상적으로 작동 함)와 함께 사용할 수 있지만 대문자로 대체 할 수는 없습니다. \ u $ 1 같은 것이 효과가 있다고 생각했지만 EditPad Pro에서는 그렇지 않습니다.

무료 도구가 없으면 C#으로 대체하는 것이 좋겠지 만 컴파일러가 아닌 서둘러 일부러 있으므로 익스프레스를 다운로드해야합니다. 에디션 우선, 그래서 ... 그런 기능을 지원하는 도구를 찾는 것이 좋습니다!

감사합니다.

+3

이 질문은 수퍼 유저에게 더 적합합니까? – georgiecasey

답변

200

텍스트 패드를 사용하면이 작업을 수행 할 수 있습니다.

예 : \U\1\E \2

\U 모두 다음과 같은 문자가 \E\U

이 꺼집니다

상단 원인이 될 것입니다 : \([^ ]*\) \(.*\) 가 교체 :

test this sentence 

은 무엇 찾기

결과는 다음과 같습니다.

TEST this sentence 
+12

ToUpper를 사용하지 않고 .NET Regex에서이 작업을 수행 할 수 있습니까? – Shimmy

+31

notepad ++에서도 작동합니다. – Shawn

+28

_Sublime Text_ – Qwerty

24

EditPad Pro와 PowerGREP는 변화를 역 참조의 경우에 당신을 수있는 독특한 기능이 있습니다. 대문자 \U1 삽입 첫 번째 역 참조 , 대문자의 첫 번째 문자와 소문자로 나머지는 소문자로 \L1\F1. 마지막으로 \I1은 을 각 단어의 첫 글자가 으로 대문자로 표시하고 다른 글자는 소문자로 삽입합니다.

출처 : Goyvaerts, Jan (2006). 정규식 : 전체 자습서. Lulu.com. p. 35. ISBN 1411677609. Google 도서 검색된 날짜 2010 년 6 월 25 일.

+6

EditPad Pro는 RegEx 고급 사용자를위한 최고의 텍스트 편집기 중 하나입니다. –

7

jEdit의 찾기 및 바꾸기 대화 상자에서 "BeanShell 스 니펫의 반환 값"옵션을 사용하여 jEdit에서이 작업을 수행 할 수 있습니다.그냥 " [a-z]" 검색하고 (따옴표없이) " _0.toUpperCase()"에 의해 교체

+1

귀하의 응답은 실제로 초기 질문과 관련이 없지만 실제로 발견되었습니다. 그것은 인터넷 검색을하면서 정확히 내가 무엇을 찾고 있었는지. 굉장해, 고마워! – adietisheim

3

또한 \I1\I2 등 대신 $1$2를 사용하여 경기의 첫 글자를 대문자로 할 수 있습니다.

20

이 스레드는 EditPad Pro에 관한 것입니다. 하지만 자바 스크립트 regexp 같은 필요성 때문에 여기 왔어요.

여기에 같은 팁이 필요한 사람들을 위해 javascript regexp에서 replace 인수로 함수를 사용할 수 있습니다.

저는 bellow 함수를 사용하여 CSS 이름을 -와 같은 JavaScript 코드로 변환합니다. 예를 들어 "border-top"은 "borderTop"으로 변형 될 것입니다.

s = s.replace(/\-[a-z]/g, function(x){return x[1].toUpperCase();}); 
+2

이것은 자체 질문 및 답변에 가치가있을 수 있습니다. (자신의 질문에 답하는 것이 좋습니다.) – Stewart

관련 문제