2009-05-05 4 views
2

나는이 같은 행에 텍스트 파일이 있습니다특정 문자열에서 단어가 아닌 문자를 바꾸려면 정규식을 어떻게 사용합니까?

SendersTimeSeriesIdentification: COMPANY_A/COMPANY_B/REF_7/20090505 

나는이 같은 문자 n으로 값 파트의 모든 단어가 아닌 문자를 교체하고 싶습니다 :

SendersTimeSeriesIdentification: COMPANYnAnCOMPANYnBnREFn7n20090505 

그러나 파일 전체에 유사한. 자열이 있으며, 그대로 유지되어야합니다. 예 인 :

MessageIdentification: REF_7/VER_1/20090505 

은 내가 lookbehind 사용해야합니다 생각하고, 나는이 시도 (VB.NET)에 온 : 나는 그것을에 원하는만큼

Regex.Replace(fileContentString, "(?<=SendersTimeSeriesIdentification:)(\W)", "0") 

이 작동하지 않습니다. 그래서 내 질문은 다음과 같습니다.
특정 문자열의 단어가 아닌 모든 문자를 Regex.Replace 호출로 바꿀 수 있습니까? 방법?

답변

2

이 하나 봅니다 "SendersTimeSeriesIdentification".

+0

내 상황이 더 쉽기 때문에이 솔루션을 사용하겠습니다. 줄 끝에 주석 (// some comment)이 있으면 두 개의 슬래시가 바뀌기 때문에 주석이 있어야한다고 생각합니다. – SinkovecJ

2

하나의 정규식 바꾸기 대신 파일을 줄로 나누고 "SendersTimeSeriesIdentification :"으로 시작하는 줄만 처리합니다. 그런 식으로 정규 표현식 대체가 멋지고 간단합니다.

Regex.Replace(fileContentString, "(?<=SendersTimeSeriesIdentification:\s.*)[_\W]", "0") 

이 후 "0"모든 \ W 및 _ 문자를 대체합니다

+0

Kamarey의 대답은 정확하지만 가능한 경우이 방법을 사용합니다. –

+0

@Alan M : 동의합니다. "할 수 있다면"이 여기에 핵심입니다. :-) – SinkovecJ

관련 문제