2014-02-25 4 views
2

을 달성하지 내가 예를 들어 목록을 가지고있다. [데이터] 텍스트는 목록에 따라 달라 지므로 유의하십시오.Regex.IsMatch 경기

내 현재 코드 : 내가 잘못

result = Regex.IsMatch(line1, "\\bType\\b"); 

을 뭐하는 거지?

답변

3

캐럿 ('^')을 사용하여 문자열의 시작과 일치시킵니다.

Regex.IsMatch(line1, @"^Type (.*)$"); 
1

귀하의 정규식 \bType\b 라인, 라인의 끝과 사이에 단어의 시작에 Type의 발행 수를 찾습니다.

result = Regex.IsMatch(line1, @"^Type\b"); 

라이브 데모 : http://rubular.com/r/iEiDEhVt5g

사용 ^가 줄의 시작 부분에 보는

당신이 정규식을 사용할 수 있습니다 언급 한 첫 번째 경우와 일치합니다. 이렇게하면 단어 사이에 또는 끝에서 Type이 발생해도 일치 항목이 생성되지 않습니다. 당신은 단지 문자열의 시작 부분에 Type 일치해야하는 경우

2

, 당신은 모든 정규 표현식을 필요가 없습니다과 같이 System.StringStartsWith 방법을 사용하십시오

if (line1.StartWith("Type ")) { 
    ... 
} 
2

당신은 당신이 목록을 말했다 , 그러나 무엇의 목록이 아니라. 당신이 수, 대부분 하나의 일치에있을 경우

var matches = data.Where(x => x.StartsWith("Type")); 

을하고,이 목록에 어딘가로 보장 : 그것은이 문자열 목록이있어 가정, 대신 LINQ를 사용하여 "유형"로 시작하는 모든 문자열을 찾을 수 있습니다 이것을 사용하십시오 :

var matches = data.Single(x => x.StartsWith("Type"));