我是編程新手,F#是我的第一個.NET語言。F#:Try-with block用於檢查正則表達式模式是否有效
作爲一個初學者的項目,我想創建一個正則表達式查詢工具,它將確定用戶輸入的正則表達式模式是否有效。我被告知,我可以通過try-with塊來查看是否編譯正則表達式模式,但由於我對編程通常還是非常陌生,所以我無法使用this method,因爲我不知道指定什麼第二個參數。
- 我在尋找正確的方法嗎?
- 一個更有經驗的程序員能告訴我如何編寫一個能完成剛纔描述的任務的函數嗎?
謝謝。
編輯:這裏是我的代碼至今:
open System
open System.IO
open System.Text.RegularExpressions
let askUserForFilePath() =
Console.WriteLine("Please enter the file (extension: .txt) from which to read all lines: ")
let filePath = Console.ReadLine()
filePath
let askUserForRegexPattern() =
Console.WriteLine("Please enter a regular expression: ")
let regExp = Console.ReadLine()
regExp
let getLinesFromFile (filePath: string) =
let linesFromFile = File.ReadAllLines filePath
linesFromFile
|> Array.reduce (+)
|> string
let matchTextAgainstRegex (text: string) (regExp: string) =
try
Regex.IsMatch(text, regExp)
with
if Regex.IsMatch(text, regExp) then
let matchResults = Regex.Match(text, regExp)
let stringsFound = []
for eachGroup in matchResults.Groups do
eachGroup.Value :: stringsFound |> ignore
stringsFound
|> List.rev
|> List.iter (fun eachString -> printfn "%s" eachString)
else
我的問題是不知道如何完成試穿用塊。 'else'塊目前尚未完成,但我會稍後再討論。感謝您的幫助。
你到目前爲止嘗試過什麼?爲什麼它不起作用?你能否提供一個[簡短,獨立,正確,可編輯的例子](http://sscce.org)? – 2015-03-19 09:22:54
@MarkSeemann,我現在用一個例子來編輯我的帖子。 – 2015-03-19 09:24:58
您是否閱讀過最後一個問題的完整答案(自編輯以來)?它似乎解決您的問題 – 2015-03-19 09:28:00