【发布时间】:2018-02-06 23:52:06
【问题描述】:
使用正则表达式匹配字符串时抛出异常
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”类型的第一次机会异常 在 System.dll 中附加信息:解析“[^]*Errors\ found\ 获取\输入。\上一个\错误\原因\程序\ 终止。” - 未终止 [] 集。
帮我解决这个问题。
【问题讨论】:
-
您能否显示引发异常的代码和exact异常消息?
-
你的正则表达式中的
[^]是什么意思? -
首先,声明变量后没有分号。其次,您希望您的模式完全匹配什么?
-
您需要转义这些反斜杠,否则正则表达式引擎将看不到它们,因为它们已被编译器删除。