2016-07-04 39 views
1
私は、次の正規表現文字列を持っている

の一部のみを返す:私はかみそりビューの電子メールから特定の値を引くためにそれを使用しようとしている正規表現文字列

(@Model.[a-z]*) 

を。 は、だから我々は次の値を持つことができる:

  • Model.Company @ Model.FirstName @

私は、次のコードは、リスト内のこれらの値を返すことを期待する:

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

代わりに、同じ値のリスト "@Model"を取得します。 私はここで何が欠けていますか?

答えて

3

値は、大文字と小文字の両方を含めることができますので、正規表現は次のようになります。

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

...またはあなたがRegexOptions.IgnoreCaseオプションを置くことができますが、それはModel部分にも適用されるであろう。あなたはカミソリを使用している場合

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

のようにそれを使用する代わりに、

EG

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

引用符の内側に@Modelを配置しないことを検討改行。 '@Model。[a-zA-Z] *'は '@ Model〜'にマッチします。 –

0

あなたが大文字小文字を区別しないアプローチを検討すべきです。

するとまあ、エスケープドット以外の任意の文字に一致し、この

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