2017-08-29 93 views
-2

雖然與正則表達式模式匹配的字符串拋出異常正則表達式的表達式分析在C#中

string input = "CheckConvexity: Zone=CEILING VOID ZONE STORY 1, Surface=CEILING VOID LIVING:SLAB 2.2 931D4 is non-convex. ...vertex 4 to vertex 5 to vertex 6 ...vertex 4=[5.41,15.05,3.90] ...vertex 5=[1.19,10.82,3.90] ...vertex 6=[-2.16,14.17,3.90]"; 
string pattern ="CheckConvexity:\ Zone=[^]*,\ Surface=[^]*\ is\ non-convex\.\ \.\.\.vertex\ [^]*\ to\ vertex\ [^]*\ to\ vertex\ [^]*\ \.\.\.vertex\ [^]*=\[[^]*]\ \.\.\.vertex\ [^]*=\[[^]*]\ \.\.\.vertex\ [^]*=\[[^]*]\ \.\.\.vertex\ [^]*\ to\ vertex\ [^]*\ to\ vertex\ [^]*\ \.\.\.vertex\ [^]*=\[[^]*]\ \.\.\.vertex\ [^]*=\[[^]*]\ \.\.\.vertex\ [^]*=\[[^]*]" ; 

Regex.IsMatch(input,pattern,System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace); 

下面是一個例外 -

類型「System.ArgumentException」的第一個機會異常發生系統 。 dll附加信息:解析「[^] * Errors \ found \ 正在接受\輸入。\上一個\錯誤(s)\原因\程序\ 終止。 - 未終止[]設置。

幫我解決這個問題。

+3

請問您能否顯示引發異常和_exact_異常消息的_code_? –

+0

你的正則表達式中的[^]是什麼意思? –

+0

首先,聲明變量後沒有分號。其次,你想要什麼樣的模式完全匹配? – Youssef13

回答

0

問題是[^]並不意味着什麼。 A [^abc]將與任何字符匹配,除了a,b或c。根據正則表達式引擎,您沒有提供「except」部分。

如果你指的^字符匹配,使用\^(逃避根據你的語言反斜線)作爲一個普通的^有特殊的意義。

如果要匹配任何字符(由您的樣本判斷),請使用.*。 A .與任何單個字符匹配,*是一個量詞,指定「零個或多個前一個」。