2016-07-04 2 views
1
나는 다음과 같은 정규식 문자열을

의 부분 반환 : 나는 면도칼보기 이메일에서 특정 값을 끌어 그것을 사용하려고 해요정규식 문자열

(@Model.[a-z]*) 

합니다. 그래서 우리는 다음과 같은 값을 가질 수있다 :

  • Model.Company @ Model.FirstName @

다음 코드는 목록에 이러한 값을 반환하는 기대 :

Regex.Matches(emailString, "@Model.[a-z]*").Cast<Match>().Select(match => match.Value) 

대신 "@Model"같은 값의 목록 만 가져옵니다. 여기에 무엇이 누락 되었습니까?

(@Model\.[a-zA-Z]*) 

을 ... 또는 당신은 RegexOptions.IgnoreCase 옵션을 넣을 수 있습니다하지만 Model 부분에도 적용 것입니다 :

답변

3

값 따라서 정규 표현식이 있어야한다, 소문자와 대문자를 모두 포함 할 수 있습니다. 당신이 면도기를 사용하는 경우

Regex.Matches(emailString, "@Model.[a-z]*", RegexOptions.IgnoreCase) 
+1

음처럼 사용을 고려, 이스케이프 점은 이외의 문자와 일치 줄 바꿈. '@Model. [a-zA-Z] *'는'@ Model ~'과 일치 할 것입니다. –

0

당신은 대소 문자를 구분하지 접근 방식을 고려해야합니다.

그런 다음

EG에게 인용 부호의 내부 @Model을 배치하지

Regex.Matches(emailString, "@Model.[a-z]*", RegexOptions.IgnoreCase) 
대신

Regex.Matches(emailString, Model + ".[a-z]*", RegexOptions.IgnoreCase)