내 코드에서 이중 인용 문자열 내에있는 백 슬래시와 일치하는 정규식을 원합니다. 예를 들어 다음은 모두 일치해야합니다..NET RegEx로 이중 인용 문자열 내에서 백 슬래시 찾기
Dim testStr As String = "This is \ text"
Dim testStr2 As String = "\"
VS에서 찾기 기능을 사용하여 솔루션 전체 검색을 수행하고 싶습니다.
내 코드에서 이중 인용 문자열 내에있는 백 슬래시와 일치하는 정규식을 원합니다. 예를 들어 다음은 모두 일치해야합니다..NET RegEx로 이중 인용 문자열 내에서 백 슬래시 찾기
Dim testStr As String = "This is \ text"
Dim testStr2 As String = "\"
VS에서 찾기 기능을 사용하여 솔루션 전체 검색을 수행하고 싶습니다.
이 작동하는 것 같다 :
\\~([^"]*("[^"]*"[^"]*)*$)
\\
리터럴 백 슬래시와 일치합니다. 다음은 negative lookahead과 같습니다. ~(...)
이 주장하면 그 시점에서 ...
이 아니라이 일치 할 수 있습니다 (실제 경기에서 더 많은 것을 포함하지 않음). 이것을 사용하여 백 슬래시가 문자열 안에 있는지 확인합니다. 문자열 안에있는 경우 행과 끝 사이에 홀수 인 "
이 있습니다. 따라서 백 슬래시와 줄 끝 사이에 짝수 "
($
으로 표시)이 있으면 [^"]*("[^"]*"[^"]*)*$
이 일치합니다.
이렇게하면 \"
으로 이스케이프 된 여러 줄의 문자열이나 따옴표에 문제가 발생할 수 있지만 다행히도 VB.NET에는 존재하지 않으므로이 솔루션으로 안전해야합니다.
이 이 아니라은 .NET 정규식입니다. Visual Studio에는 its own rather odd regex syntax이 있습니다.