F # Ошибка с именованными регулярными выражениями? - PullRequest
0 голосов
/ 11 декабря 2011

Я пытался заставить именованное регулярное выражение работать в F # без особой удачи. Портировано на C # и все работает. Есть ли какая-то особенность в 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);

Ответы [ 2 ]

5 голосов
/ 11 декабря 2011

Группы чувствительны к регистру. У вас есть "liveID" на F # и "liveId" на C # (обратите внимание на D).
В первом блоке нет группы с именем liveID, поэтому она не работает.

2 голосов
/ 11 декабря 2011

У вас есть орфографическая ошибка в названии вашей группы: попробуйте "liveId" вместо "liveID"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...