REGEX를 사용하여 특정 문자열에서 비 단어 숯을 교체하려면 어떻게합니까?

StackOverflow https://stackoverflow.com/questions/824052

  •  05-07-2019
  •  | 
  •  

문제

다음과 같은 행이있는 텍스트 파일이 있습니다.

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 호출로 바꿀 수 있습니까? 어떻게?

도움이 되었습니까?

해결책

이거 한번 해봐:

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

이것은 모든 w 및 _ chars를 "Senderstimeseriesidentification :"이후 "0"으로 대체합니다.

다른 팁

단일 정규식 교체로 수행하는 대신 파일을 라인으로 분할 한 다음 "Senderstimeseriesidentification :"로 시작하는 행 만 처리합니다. 그렇게하면 Regex 교체가 좋고 간단합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top