숭고한 텍스트 찾기 모든 문자 바꾸기


2

어떤 문자를 그 자리에 넣을 수있는 특수 문자를 사용하여 찾고 바꾸는 방법이 있습니까?

이것이 의미하는 바는 다음과 같은 텍스트가 있다는 것입니다.

setI0100(mds3a1.getI0100().toString());
setI0200(mds3a1.getI0200().toString());
setI0300(mds3a1.getI0300().toString());
setI0400(mds3a1.getI0400().toString());
setI0500(mds3a1.getI0500().toString());
setI0600(mds3a1.getI0600().toString());
setI0700(mds3a1.getI0700().toString());
setI0800(mds3a1.getI0800().toString());
setI0900(mds3a1.getI0900().toString());
setI1100(mds3a1.getI1100().toString());
setI1200(mds3a1.getI1200().toString());
setI1300(mds3a1.getI1300().toString());

(mds3a1.getI *** (). toString ())과 같은 것을 사용하여 바꾸고 싶었습니다. 첫 줄 뒤의 모든 줄의 끝을 바꿉니다.

*는 모든 문자와 동일 할 수 있습니다. 위의 모든 줄의 끝을 모두 정확히 동일하지는 않지만 대체 할 수 있습니다. 한 줄은 다음과 같습니다.

Before:
    setI0100(mds3a1.getI0100().toString());
After:
    setI0100

다른 프로그램에서 비슷한 기능을 보았지만이 동작의 단어가 정확히 무엇인지 잘 모르겠습니다.

편집 : 결국 @DavidPostill이 지적한 것처럼 정규 표현식을 찾고있었습니다.

내가 원하는 것을하기 위해 나는 다음과 같이 끝났다.

find: (\(mds3a1.getJ)....+(().toString\(\)\);)
replace: 

첫 줄을 포함하지 않을 때까지 각 줄의 텍스트를 남겨 둡니다.

숭고한 텍스트로 정규식을 사용하려는 사람이라면 여기에서 내가 찾은 좋은 리소스가 있습니다. https://github.com/dmikalova/sublime-cheat-sheets/blob/master/cheat-sheets/Regular%20Expressions.cheatsheet


모든 현재 옵션을 일치시키고 한 가지로 모두 바꾸시겠습니까? 질문에 더 많은 예를 추가하십시오. 요청한 내용이 불분명합니다.
MattDMo

@MattDMo 기본적으로 나는이 줄들 각각의 "(mds")로 시작하여 끝을 잘라 내고 싶다. 나는 초기 질문에서 좀 더 명확히하기 위해 노력했다
Charles S

1
나는 타이핑을 구하려고 노력하고 있으며 첫 줄 전에 각 줄의 모든 텍스트를 가져오고 싶습니다 (
Charles S

1
그것이 바로 정규 표현식 의 목적입니다. docs.sublimetext.info/en/latest/search_and_replace/…를
DavidPostill

@DavidPostill 당신이 대답을 할 수 있다면 나는 당신에게 +를 줄 수있어 기쁘다
Charles S

답변:


1

MattDMo 답변이 원하는 결과에 대한 올바른 패턴이 아닌 것 같습니다. 더 우아한 솔루션을 위해 내가 한 일은 다음과 같습니다.

숭고한 텍스트 2 열기

블록을 붙여 넣습니다.

setI0100(mds3a1.getI0100().toString());
setI0200(mds3a1.getI0200().toString());
setI0300(mds3a1.getI0300().toString());
setI0400(mds3a1.getI0400().toString());
setI0500(mds3a1.getI0500().toString());
setI0600(mds3a1.getI0600().toString());
setI0700(mds3a1.getI0700().toString());
setI0800(mds3a1.getI0800().toString());
setI0900(mds3a1.getI0900().toString());
setI1100(mds3a1.getI1100().toString());
setI1200(mds3a1.getI1200().toString());
setI1300(mds3a1.getI1300().toString());

찾기> 바꾸기 ( CTRL+ H)

정규식 사용 버튼 ( Alt+ R)

무엇을 찾다: \(.*

다음으로 교체 : [ 문자 없음 ]

모두 바꾸기를 누릅니다.

끝난

결과는 당신이 요구 한 것입니다 :

Before:
    setI0100(mds3a1.getI0100().toString());
After:
    setI0100

정규식 분석 :

\((캐릭터를 일치시키고 탈출하십시오 .

. 단일 문자와 일치하십시오.

* 선행 문자를 0 번 이상 일치시킵니다.


당신은 맞습니다, 내 서둘러 MattDMo의 대답이 내가 원하는 것이 아니라는 것을 알지 못했습니다. 답변으로 선택한 직후에 만 나타났습니다. 공평하게 내 질문은 그랬던 것처럼 명확하지 않았다. 또한 답변으로 선택하기 전에 조금 더 테스트해야합니다. 정확한 정답을 제공해 주셔서 감사합니다. 이것은 내가 찾던 것입니다.
Charles S

1

찾기 대화 상자에서 정규식 검색을 켜고 다음 패턴을 사용하십시오.

^(.*?)(?=\()

이것은 줄의 시작 부분 ( ^)에서 시작한 다음 캡처하지 (.*?)않는 긍정적 인 미리보기 ( (?=\()) 까지 모든 문자 ( ) 를 캡처합니다 .


oooh 나는 실제로 내가 생각했던 것보다 이것을 더 좋아한다. 대단히 감사합니다 @MattDMo
Charles S

1
문제 없어. 정말 : 정규식을 배우고 지불
MattDMo

내 손에 고마워요, 4000 줄이 있습니다 :>
Charles S

1
더 많은 정규식 도움말이 필요하면 스택 오버플로에 게시 하고 태그를 지정하십시오 regex. 먼저 정직한 시도를하고, 혼란스러워하면 도움을 청하는 사람들이 많이 있습니다. 태그를 달아서 sublimetext어떤 풍미를 다루는 지 확인하십시오 .
MattDMo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.