2012-03-14 2 views
0

나는이 다음 코드 :`startat`를 지정하면 부분 문자열의 시작 부분을 일치시킬 수 있습니까?

var regex = new Regex(@"^\d+\b"); 
Console.WriteLine(regex.IsMatch("x 10", 2));   // False 
Console.WriteLine(regex.IsMatch("x 10".Substring(2))); // True 

나를 startat 매개 변수를 지정하고 여전히 해당 문자열을 복용과 같은 결과를 얻을 수있게된다 ^ 외에 내 패턴으로 사용하는 캐릭터가 있습니까? 즉, 내가 통과 할 문자열의 시작 부분이 아니더라도 테스트 할 하위 문자열의 시작 부분을 일치시킬 수 있습니까? 문자열을 따라 정규식을 옮길 것이므로 하위 문자열을 많이 만들지 않고 패턴으로 하드 코딩 할 수는 없습니다.

+1

'.IsMatch (String, Int32)'false가 이상하게 보입니다 ... – ephemient

+0

@ ephemient- 그건 내가 생각한 것입니다. – dlras2

답변

1

Try \G, 예를 들면 :

var regex = new Regex(@"\G\d+\b"); 
Console.WriteLine(regex.IsMatch("x 10", 2)); 

\G 이전 경기가 종료 된 시점에서 일치 (또는 그 이전과 일치하지 않는 문자열의 시작).

+0

이것은 정확히 내가 원하는 것, 감사합니다! http://www.regular-expressions.info는 이것에 저를 실패했다. – dlras2

-1

var regex = new Regex (@ "\ w \ t \ d + \ b");

+0

죄송합니다. 내 질문이 모호했습니다. 나는 그것을 reworded. ('\ t'는 공백이 아니라 탭과 일치합니다.) – dlras2

+0

try var regex = new Regex (@ "[\ w] * \ d + \ b"); –

+0

내가 지정한 시작 위치에서 패턴이 가장 먼저 일치하는지 확인하고 싶습니다. 제 구체적인 예를 너무 많이 들었습니다. – dlras2

관련 문제