Visual Studio에서 여러 줄에 걸쳐 정규식 바꾸기를 수행하도록하는 방법이 있습니까 (선 경계를 일치 시키도록 함)? 이를 위해 사용할 수있는 편집기가 많이 있다는 것을 알고 있지만이 기능이 Visual Studio에서 제외 된 것이 이상해 보입니다. 내가 뭔가를 놓치고 있습니까?
답변
파일 대화 상자에서 대체 사용 Ctrl– Shift– H와 한 줄 옵션 (?s)
:
(?s)start.*end
발견
start
two
three
end
단일 행은 각 파일이 단일 행으로 처리되고 점 .
은 개행 문자와 일치 함을 의미합니다 \n
. 단점 : 모두 찾기 를 사용 하여 모두 교체하거나 손으로 교체 해야합니다 . 다음 찾기가 작동하지 않습니다.
비 모달 대화 상자의 경우 Ctrl– H다음 찾기를 사용 (.*\n)*
하여 원하는 수의 행을 일치 시킵니다 .
start(.*\n)*.*end
어느 쪽이든 삽입하여 결과를 여러 줄로 바꿀 수 있습니다 \n
.
답변
Visual Studio 2013 에서는 정규식이 변경되었습니다 . https://msdn.microsoft.com/en-us/library/2k3te2cs(v=vs.120).aspx
두 줄에 걸쳐 표현식을 일치 시키려면 이제 코드는 다음과 같습니다.
StartOfExpression.*\r?\n.*EndOfExpression
답변
이것은 현재 Visual Studio 2012에서 작동합니다.
fooPatternToStart.*(.*\n)+?.*barPatternToEnd
(.*\n)+?
탐욕스럽지 않은 여러 줄 에서 부품이 어떻게 일치 하는지 확인하십시오 .
fooPatternToStart
시작 줄에 정규식 패턴 barPatternToEnd
이 있고 패턴은 아래 다른 줄에서 찾을 수 있습니다.
간단하고 효과적인 🙂
참고 : VS2012 이전 에는 다음과 같은 패턴이 작동했습니다.fooPatternToStart.(.\n)+@.*barPatternToEnd
답변
참고 :이 답변은 VS 2012까지 Visual Studio에서 사용되는 정규식 구문을 사용합니다. VS 2013 이상에서는 정규식 구문이 변경되었습니다.
\n
표현식에 포함 할 수 있습니다 . 예를 들어, 여기에 저장 프로 시저가 아닌 모든 것에서 자동 생성 된 SQL 스크립트를 “정리”하는 데 사용하는 정규식이 있습니다 ( “Object :”가 포함 된 줄로 시작하는 텍스트 블록과 일치하지 않는 항목이 뒤 따르는 텍스트 블록과 일치합니다. “StoredProcedure”, 다음 줄을 한 줄까지 일치 시키면 단어 “GO”로 구성됨) :
/\*+ Object\::b:b~(StoredProcedure)(.*\n)#GO\n
답변
표현식 끝에 \ r \ n을 사용해야 할 수도 있습니다.
답변
탐욕스럽지 않은 여러 줄 문자 캡처, Visual Studio 2013+ :
.*?\r?\n.*?
Giles Roberts의 대답에서 욕심 많은 버전.
답변
VS Code를 검색하는 동안 여기에 오는 모든 사람들을 위해, 나는 이것을 사용 script
하여 2 개의 줄 바꿈 (줄 바꿈 제외)으로 어디서나 일치 시킵니다.
script(.|\n)+?(?=\n\n)
교체 script
하고 \n\n
그들 사이의 모든 것을 일치시킵니다.