찾기 및 바꾸기-캐리지 리턴 또는 줄 바꾸기 추가


183

다음 문자열이 구문 분석되는 경우.

ford mustang,10,blue~~?bugatti veyron,13,black

나는 대체 할 ~~?A의를carriage return

대체 \n하면 문자열이 추가됩니다."\n"

이것을 어떻게 할 수 있습니까?

답변:


272

찾기 및 바꾸기 대화 상자에서 "사용 : 정규식"이 선택되어 있는지 확인하십시오.

찾기 / 바꾸기 대화 상자 정규 표현식 사용

Visual Studio 2010의 경우 Visual Studio Productivity Power Tools 의 "빠른 찾기"확장 (2011 년 7 월 업데이트 기준) 에서 작동하지 않습니다 . 대신 전체 찾기 및 바꾸기 대화 상자 (Ctrl + Shift + H 사용 또는 편집-> 찾기 및 바꾸기-> 파일에서 바꾸기)를 사용하고 범위를 "현재 문서"로 변경해야합니다.


5
찾기 텍스트 오른쪽에있는 "재생"버튼을 사용하면 편리합니다
Cel

3
그리고 괄호와 같은 특수 문자를 일치시키려는 \)경우 정규 표현식이 켜져있을 때 사용하는 것을 잊지 마십시오 .
Cel

2
?문자는 이전 요소가 선택 사항임을 나타 내기 때문에 Regex에서 이스케이프해야합니다. 따라서 ~~\?물음표가 백 슬래시로 이스케이프 된 올바른 "찾을 내용"텍스트가 입니다. 당신이 제공 한 답변은 탐욕스럽게 두 번째 물결표를 찾아서 소비하기 때문에 샘플 텍스트에서 작동하지만 단일 물결표가 텍스트 어디에도 존재하면 줄 바꿈으로 잘못 대체됩니다.
ErikE

Productivity Power Tools가 설치된 경우에도 ctrl + shit + h를 수행 한 다음 ctrl + h를 수행하여 기본 Visual Studio 찾기 / 바꾸기 창을 열 수 있습니다.
Neb

"정규 표현식 사용"을 선택하면 "\ n"을 사용하여 줄 바꿈 을 찾아서 바꿀 수도 있습니다.
Jacob Lockard

28

\x0d\x0aVisual Studio 찾기 / 바꾸기를 사용하여 캐리지 리턴 + 줄 바꿈을 가져 오려면 "정규 표현식 사용"확인란이 선택된 "바꾸기"상자에서 시도 할 수도 있습니다 . 사용 \n(라인 피드하는)와 동일\x0a


13

"정규 표현식 사용"플래그를 설정하면 \ n이 번역됩니다. 그러나 정규식을 사용하려면 검색어를 수정해야합니다. 귀하의 경우에는 "\ ~ \ ~ \?"와 같이 이스케이프되어야합니다. (따옴표 제외).


3
'~'는 Regex에서 벗어날 필요가 없습니다. 문자 그대로입니다. 이것은 올바르지 않습니다.
ErikE

12

정규식을 사용할 때 검색 및 대체 문자열에서 특수 문자를 피하는 번거 로움을 피하려면 다음 단계를 수행하십시오.

  1. 원래 문자열을 검색하고 정규식이 꺼져 있는 "UniqueString42"로 바꿉니다 .
  2. "UniqueString42"를 검색하여 정규식이있는 "UniqueString42 \ nUniqueString1337"로 바꾸십시오 .
  3. "UniqueString42"를 검색하여 정규식이 꺼져있는 대체의 첫 번째 줄 (보통 원래 문자열)로 바꾸십시오 .
  4. "UniqueString42"를 검색하여 정규식이 꺼져있는 교체의 두 번째 줄로 바꾸십시오 .

첫 번째 검색 및 바꾸기를 위해 일치 항목을 수동으로 pich하려는 경우에도 마지막 세 단계에 대해 "모두 바꾸기"를 안전하게 사용할 수 있습니다.

예를 들어, 이것을 바꾸려면 :

public IFoo SomeField { get { return this.SomeField; } }

그것으로:

public IFoo Foo { get { return this.MyFoo; } }
public IBar Bar { get { return this.MyBar; } }

다음 대체를 수행하십시오.

  1. public IFoo SomeField { get { return this.SomeField; } }XOXOXOXO(정규식 해제 ).
  2. XOXOXOXOXOXOXOXO\nHUHUHUHU(정규식 ).
  3. XOXOXOXOpublic IFoo Foo { get { return this.MyFoo; } }(정규식 해제 ).
  4. HUHUHUHUpublic IFoo Bar { get { return this.MyBar; } }(정규식 해제 ).

@Alex이 문제에 대한 실질적인 해결책이 있다면 수동으로 검색을 피하고 텍스트를 정규 표현식으로 변환 할 때 텍스트를 바꾸지 않아도되고 다음 10 분 동안 그 방식으로 생성 된 몬스터를 고치게됩니다. 내 대답은 추악한 해킹 일뿐입니다. 그러나 보시다시피 추가 플러그인없이 vanilla Visual Studio에서 작동하는 다른 모든 답변에는 정규식을 사용해야하므로 간단한 텍스트를 피해야합니다.
수잔 듀 페론

2
나는 나쁜 방식으로 그것을 의미하지 않았다. 내 사과 나는 웃는 것을 잊어 버렸다 : D 해결책에 관해서는, 나는 VS와 관련된 것을 가지고 있지 않다. 그러나 정규식 (notepad ++ 등)을 지원하는 괜찮은 외부 편집기가 잘 작동한다는 것을 알았습니다.
Alex

2
UltraEdit은 검색 대치의 왕입니다. 여기서 줄 바꿈이나 줄 바꿈 또는 그 줄을 표시하고 검색을 시작하여 무엇이든 검색 할 수 있습니다. -대충 교체하려면 \ n에 ^ n, \ r에 ^ r, \ t에 ^ t를 입력하십시오-VS2010 만 동일한 작업을 수행하는 경우 :-)
Miros

검색 문자열이 리터럴 문자와 일치하는지 또는 Regex 제어 문자로 해석되는지 확인하려면 항상 regex101.com 을 방문 하십시오.
ErikE

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