문자열 리터럴 검색
-
03-07-2019 - |
문제
현지화를위한 탐구에서 소스 코드 사이에 흩어져있는 모든 문자열 리터럴을 찾아야합니다. 나는 이것을 수정 후 소스 저장소 검사로 스크립팅하는 방법을 찾고있었습니다. (즉, 어떤 사람이 어떤 것을 확인한 후에이 통계를 확인하기 위해 상자 설정이 있는지 확인한 후) 아마도 Nant 및 Cruisecontrol 또는 CVS 관리를 처리하기 위해 무언가를 사용할 것입니다. (또는 명령 줄) 유틸리티 소스 코드를 정확하게 순환하여 문자열 리터럴을 찾는다. 나는 정규 표현식을 기반으로 간단한 문자열 모습을 수행 할 수 있지만 내 벅에 대해 조금 더 강타를 원한다는 것을 알고있다. (문자열을 분석하거나 범주에 넣을 수있다. ) 많은 시간이 끈이 반드시 번역이 필요하지는 않기 때문에 어떤 아이디어도?
해결책
Visual Studio 2010 이상 :
- 파일에서 찾기 (ctrl+shift+f)
- 사용 : 정규 표현
- 찾다:
:q
(인용 된 문자열) - 모두 찾으십시오
결과 찾기 창에는 이제 줄 번호와 인용 된 문자열이있는 줄 자체가있는 모든 파일의 보고서가 포함됩니다.
Visual Studio 2012와 나중에 검색합니다 ((\".+?\")|('.+?'))
(참조, 모자 팁 @cincauhangus)
다른 팁
소스 대신 컴파일 된 바이너리를 사용하지만 Sysinternals ' 문자열 앱이 유용 할 수 있습니다.
모든 것을 찾으려면 Text="textonly"
인스턴스는 검색 할 때 다음과 같은 정규 표현식을 사용합니다.
(Text=)(")([a-z])
이것은 찾는 데 도움이됩니다 Text="*"
그러나 이미 리소스 파일을 사용하도록 변환 된 텍스트를 제외하고 :
Text="<%$ Resources:LocalizedText, KeyNameFromResourceFile%>"
또한 (>)([a-z])
SO와 같은 태그 사이에서 리터럴을 찾는 데 사용할 수 있습니다.
<h1>HeaderText</h1>
거기에 C# codeplex의 구문 분석기 아마 사용할 수 있습니다.