2013-01-09 10 views
0

를 사용하여 문자열에서 단일 문자를 교체. 이 문자열에는 여러 줄의 코드가 들어 있습니다.내가 C# .NET을 사용하여 큰 문자열 <em>(TEXTFILE)</em>에 단일 문자를 대체하기 위해 노력하고있어 정규식

배치 파일이 호출 어떤 시점에서 할당하는 여러 매개 변수 :

call c:\script.bat 1 1 16 localhost 1 1 %0% 

이 될해야합니다

call c:\script.bat 2 1 16 localhost 1 1 %0% 

나는에합니다 (regex 점 그룹 를 대체 할 다음 문을 만들었습니다 이 경우 첫 번째) :

Regex.Replace(content, @"call c:\script.bat)(.)(1 16 localhost 1)(.)(%0%)","$1.$3$4$5") 

는 어떻게 든 나는 경기의 장소에있는 number 1 다음 문자열 줘야을 대체하기 때문에 2로 대체에 연결된 문자 2과 비 기존 그룹 12 대신 group 1을 액세서 할 수없는 대체 확신합니다.

은 누군가가 나에게 단서를 얻을 수 있습니까?

+3

Regex를 사용해야하는 이유는 무엇입니까? '.lplace ("1 1 16", "2 1 16")'로 충분할 때와 같은 잔인 함입니다. –

+0

큰 파일에서 작업하고있는 것처럼 나는 단지 문자열 만 적용되도록 shure해야합니다. 배치 파일이 호출됩니다. –

답변

0

간단한 해결책은 구분 공간을 캡처하지하는 것입니다 :

Regex.Replace(content, @"(call c:\script.bat) \d (1 16 localhost 1)(.)(%0%)","$1 2 $3$4$5") 

참고 : 나는 또한 \d 자리의 문자 집합을 사용했습니다. 한 자리보다 큰 숫자의 경우이 값을 \d+으로 변경할 수 있습니다.

관련 문제