2010-02-05 10 views
1
Regex.Replace("some big text", "^.+(big).+$", "$1"); // "big" 
Regex.Replace("some small text", "^.+(big).+$", "$1"); // "some small text", but i need here empty string 

문자열에서 값을 선택해야합니다. 문자열이 패턴과 일치하면 괜찮습니다. 그러나 문자열이 일치하지 않으면 대체 문자열에 원래 문자열이 있습니다. 문자열이 패턴과 일치하지 않으면 빈 문자열이 필요합니다 (대체 문자열 만 사용).정규식이 일치하지 않으면 빈 대체 결과

답변

0

Regex.Match 메서드를 사용하십시오. 이렇게하면 값이 일치하는지 먼저 확인할 수 있습니다. 그렇다면 대체 할 수 있습니다. 그렇지 않으면 String.Empty 만 반환합니다. 올바른 방법은 match 기능을 사용하는 것입니다 있지만 원래의 일치가 실패 할 경우 임의의 문자열과 일치 할 수 있도록하여 당신이 할 수 가짜, http://msdn.microsoft.com/en-us/library/twcw2f1c.aspx

+0

나는 이것을 알고 있지만 Regex.Match 메서드를 사용할 수는 없다. 교체 만 사용할 수 있습니다. 저는 Yahoo Pipes를 사용하고 있으며 값을 선택하기위한 replce 함수 만 있습니다. 이전에 일치하는 방법을 추가 할 수 없습니다. – chardex

1

:

Regex.Match에 대한 자세한

에서 찾을 수 있습니다

Regex.Replace("some big text", "^.+(big).+$|^(.*)$", "$1$2"); // "big" 
Regex.Replace("some small text", "^.+(big).+$|^(.*)$", "$1$2"); 

첫 번째 부분이이 순서대로 쓰여지지 않으면 실패 할 때까지 catch-all 정규식과 일치하지 않습니다.

관련 문제