我试图在F#中使用一个名为正则表达式而没有太多运气。移植到C#,它的工作原理。是否有一些我在这里缺少的F#的特性还是一个bug?
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);
答案 0 :(得分:5)
群组区分大小写。您在F#上有"liveID"
,在C#上有"liveId"
(请注意D
)。
在第一个块上,没有名为liveID
的组,因此它失败。
答案 1 :(得分:2)
您的群组名称中存在拼写错误:尝试“liveId”而不是“liveID”