我有一行文本爲其創建正則表達式。我用rexex101.com來檢查,並且我創建的結果正則表達式沒有錯誤。這是文字的行...正則表達式拋出錯誤C#
<Msg Date="2015/04/29" Time="12:13:39:187" DateReceived="2015/04/29" TimeReceived="12:13:39:187"><Layer Name="MC"><SourceLayer Name="GUI" /><Message Name="OperatorLogin" Id="1" Status="Successful" /></Layer></Msg>
這是正則表達式...
[<][a-zA-Z]\w+\s[a-zA-Z]\w+[=]"(?<date>(?<year>(?:\d{4}|\d{2})[\/\-](?<month>\d{1,2})[\/\-](?<day>\d{1,2})))"\s[a-zA-Z]\w+[=]"(?<time>(?<hour>\d{2}):(?<minutes>\d{2}):(?<seconds>\d{2}:(?<milli>\.?\d{0,3})))"\s[a-zA-Z]\w+[=]"(?<date2>(?<year2>(?:\d{4}|\d{2})[\/\-](?<month2>\d{1,2})[\/\-](?<day2>\d{1,2})))"\s[a-zA-Z]\w+[=]"(?<time2>(?<hour2>\d{2}):(?<minutes2>\d{2}):(?<seconds2>\d{2}:(?<milli2>\.?\d{0,3})))"[>](?<logEntry>.*)
然而,當我把它變成我的程序就拋出了錯誤,如: 「意外字符」 ‘Invaid expresson術語’ ‘無法識別的轉義序列’ 我想用一開始的@符號會阻止她讀斜槓作爲轉義字符等
ŧ他是如何在程序中看起來...
string strRegXPattern = @"([<][a-zA-Z]\w+\s[a-zA-Z]\w+[=]["'](?<date>(?<year>(?:\d{4}|\d{2})[\/\-](?<month>\d{1,2})[\/\-](?<day>\d{1,2})))["']\s[a-zA-Z]\w+[=]["'](?<time>(?<hour>\d{2}):(?<minutes>\d{2}):(?<seconds>\d{2}:(?<milli>\.?\d{0,3})))["']\s[a-zA-Z]\w+[=]["'](?<date2>(?<year2>(?:\d{4}|\d{2})[\/\-](?<month2>\d{1,2})[\/\-](?<day2>\d{1,2})))["']\s[a-zA-Z]\w+[=]["'](?<time2>(?<hour2>\d{2}):(?<minutes2>\d{2}):(?<seconds2>\d{2}:(?<milli2>\.?\d{0,3})))["'][>](?<logEntry>.*))";
我不明白這一點嗎?我不知道它是否與引號「」或尖括號<>有什麼關係,我試圖把它們放到[],()[「']等,但它沒有任何區別,任何人都可以看到我要去哪裏錯了?謝謝
看起來你正在使用正則表達式解析XML,似乎這樣做的過於複雜的方式? – DavidG
http://www.w3schools.com/xpath/ –
嗨,是的,我知道使用RegEx似乎有點混亂,但我有一大堆文件一些XML,一些HTML,一些純文本。它們的格式都不同。我必須通過它們並提取日期和時間,以便它們都可以按照日期和時間的順序一起準備在列表中。我使用HTML文件的HtmlAgility Pack和文本文件的RegEx。 – NepSyn14