2014-03-14 1 views
1

c를 내가는 "animal14-07-2014preserve"(mystring에)있는 문자열을 발생 내 프로그램에서이제거 타의 추종을 불허하는 부분은 완료 - #

String ddmmyyyy = @"[0-9]{1,4}\p{P}[0-9]{1,2}\p{P}[0-9]{1,4}"; 

같은 정규식이있다. 나는이

Regex rgx = new Regex(ddmmyyyy, RegexOptions.IgnoreCase); 
MatchCollection matches = rgx.Matches(mystring); 
if (matches.Count > 0) 
    Console.Writeline("Date : " + mystring); 

그러나 여기처럼, 어떤 일치를 확인하기 위해 다음과 같은 간단한 코드를 사용할 때, 나는 "14-07-2014"입니다 문자열, 단지 '일치'부분을 얻을 수 있지만하지 않습니다 완전한 문자열.

'일치하는'부분을 전체 문자열에서 가져 오는 방법이 있습니까? 도와주세요.

+0

이렇게 많은 선발 투수를 잘못 함수가 실제로 영향을 줄 수 있다고 생각 컬렉션에 반대로 다시 하나의 Match 개체를 얻을 수 입력 매개 변수 또는 호출 인스턴스 대부분의 경우에 해당하지 않는 문자열 함수의 경우. 'mystring.Trim();'과 같은 문은 어떤 식 으로든 mystring에 영향을 미치지 않습니다. 비슷하게'rgx.Matches (mystring)'은'mystring'에 영향을주지 않습니다. – dotNET

답변

3

그냥 이렇게 :

당신은 여러 날짜와 일치 할 경우 일치하는 part.Use Matches()를 얻기 위해, 짝짓기 후 Value를 사용할 필요가
string mystring = "animal14-07-2014preserve"; 
String ddmmyyyy = @"[0-9]{1,4}\p{P}[0-9]{1,2}\p{P}[0-9]{1,4}"; 
Console.WriteLine(Regex.Match(mystring, ddmmyyyy).Value); 

. MatchCollection

+0

감사합니다. 나는 '가치'부분에 대해 몰랐다. :-) – Krishna

+0

당신을 진심으로 환영합니다! –

+0

문자열 monthdateyear = @ "[a-z] {1,3} \ p {P} [0-9] {1,2} \ p {P} [0-9] {1,4}" 이 패턴과 '01.13.2014'문자열의 경우 제안 된 코드에서 빈 문자열을 제공합니다. 왜? – Krishna

2

Match 객체의 배열 (사전 일반적인 일에서 슬프게도, 그래서는 IEnumerable, 또는 그냥 일반 object의로 노출 된 것). 각 Match 개체는 읽을 수있는 Value 필드가 있습니다.

foreach (Match match in matches.Cast<Match>()) 
{ 
    string value = match.Value; 

    // handle match value 
} 

또한 Regex.Match를 사용하여 전체 일치하는 부분을 참조

Match match = Regex.Match(input, pattern); 
string value = match.Value 
관련 문제