2017-02-21 5 views
1

この正規表現はオンラインregex testersで動作しますが、このコードを試しても正規表現は一致しません。正規表現はC#コードでオンラインでは一致しますが

Regex regex = new Regex(@"^\.lnr-(.*)\:before \{$", RegexOptions.Compiled | RegexOptions.Multiline); 

     string css = System.IO.File.ReadAllText(Server.MapPath("/linearicons-free.css")); 
     foreach (Match match in regex.Matches(css)) 
     { 
      //doing sth 
     } 

私は何が欠けていますか?

+1

[MCVE]この正規表現は、あなたはそれが成功することを期待するところに対してテストされていることを文字列が含まれているが、それが失敗したことを投稿してください正規表現します。 –

+0

'$'は '\ n'の先頭にマッチしますが、ファイルに' \ r \ n 'の両方が含まれているので、これをパターンに明示する必要があります。このパターンを試してみてください:\ {\ "^ \。lnr - (。*)\:before \ {\ r" 。これは[Anchors in Regular Expressions](https://msdn.microsoft.com/en-us/library/h5181w5w(v = vs.110).aspx)に記載されているようです。 –

+0

文字列入力がオンライン正規表現デモリンクにありました。しかし、http://demos.themecycle.com/eduhtml/edu/css/linearicons-free.css –

答えて

2

最後に、C#が文字列を解析しているときに\nがあります。あなたが期待している最後のcharcaterが^\.lnr-(.*):before \{\s$にパターンが{

変更にあり、それが動作するはずですので は、だからあなたのパターン^\.lnr-(.*):before \{$は失敗します。

あなたは.NETをテストすることができますがhere代わりのregex101.com

+0

これは本当にありがとうございました –

関連する問題