我是编程新手,F#是我的第一个.NET语言。
作为初学者的项目,我想编写一个应用程序,要求用户输入正则表达式模式,然后标记任何错误。
我已经查看了MSDN上的Regex API,但似乎没有任何方法可以自动检测正则表达式模式中的任何错误。更有经验的程序员会和我分享他们将如何实现这一目标吗?
提前感谢您的帮助。
答案 0 :(得分:3)
如果您需要检查正则表达式是否编译,只需使用try-with块。如果您需要检查正则表达式模式是否与输入字符串匹配,请使用IsMatch()
或.Success
。这已经足够了。
从另一个SO帖子中获取代码的示例,但在正则表达式模式中出现错误,我将(http:\/\/\S+)
替换为(http:\/\/\S+
:
try
let testString = "http://www.bob.com http://www.b.com http://www.bob.com http://www.bill.com"
let matches input =
Regex.Matches(input, "(http:\/\/\S+")
|> Seq.cast<Match>
|> Seq.groupBy (fun m -> m.Value)
|> Seq.map (fun (value, groups) -> value, (groups |> Seq.length))
with
| :? System.Exception as ex -> printfn "Exception! %s " (ex.Message); None