2011-12-11 6 views
0

F#で動作する名前付き正規表現を取得しようとしましたが、大したことはありません。 C#に移植されて動作します。私がここで行方不明になっている、またはバグなのか、F#とある種の特異性はありますか?F#名前付き正規表現のバグ?

F#

open System.Text.RegularExpressions;; 
let regex = new Regex("(?<liveId>WindowsLiveID)|(?<facebook>Facebook)", RegexOptions.Compiled ||| RegexOptions.IgnoreCase);; 
let m = regex.Matches("ImWindowsLiveIDOK");; 
m.[0].Groups.["liveID"].Success;; 

C#

var regex = new Regex("(?<liveId>WindowsLiveID)|(?<facebook>Facebook)", RegexOptions.Compiled | RegexOptions.IgnoreCase); 
var match = regex.Matches("ImWindowsLiveIDOK"); 
Console.WriteLine(match[0].Groups["liveId"].Success); 

答えて

5

グループ大文字と小文字が区別されます。 F#には"liveID"、C#には"liveId"があります(Dに注意してください)。
最初のブロックにはliveIDというグループが存在しないため、失敗します。

+0

すごいな単純なミスをしてみてください。御時間ありがとうございます – Dylan

2

あなたはあなたのグループ名にスペルミスがあります。代わりに「liveID」の「liveId」

関連する問題