【发布时间】:2009-08-04 13:06:25
【问题描述】:
我正在尝试解析堆栈跟踪的片段,它看起来很像这样:
at Test.Test1() in C:\Projects\Project\Test.cs:line 37
使用这样的正则表达式可以按预期工作:
at (.*?) in (.*?):line (\d*)
这匹配
- Test.Test1()
- C:\Projects\Project\Test.cs
- 37
这个正则表达式被硬编码为英语堆栈跟踪,所以如果堆栈跟踪是另一种语言,例如瑞典语,显然没有匹配:
vid Test.Test1() i C:\Projects\Project\Test.cs:rad 37
为了使匹配更加语言中立,我尝试了这个正则表达式:
(.*?) .*? (.*?) (\d*)
这匹配
- Test.Test1()
- C:\Projects\Project\Test.cs:line
- 37
问题是如何匹配没有尾随 :line 的文件路径?
【问题讨论】: