问题 7:从日志文件中提取信息

在这个例子中,我们将使用 Android adb 调试会话的实际输出。你的目标是使用我们迄今为止学习的任何正则表达式技术来**提取**堆栈跟踪行的**文件名**、**方法名**和**行号**(它们遵循“at package.class.methodname(filename:linenumber)”的形式)。

祝你好运!

练习 7:从日志条目中提取数据
任务 文本 捕获组  
跳过 W/dalvikvm( 1553): threadid=1: uncaught exception To be completed
跳过 E/( 1553): FATAL EXCEPTION: main To be completed
跳过 E/( 1553): java.lang.StringIndexOutOfBoundsException To be completed
捕获 E/( 1553): at widget.List.makeView(ListView.java:1727) makeView ListView.java 1727 To be completed
捕获 E/( 1553): at widget.List.fillDown(ListView.java:652) fillDown ListView.java 652 To be completed
捕获 E/( 1553): at widget.List.fillFrom(ListView.java:709) fillFrom ListView.java 709 To be completed
解决方案

这个也可能有点棘手,但我们实际上只需要捕获方法名、文件名和行号。这可以通过使用表达式 (\w+)\(([\w\.]+):(\d+)\) 来实现,其中第一个捕获组是方法,后面跟着一个转义的括号,然后是文件名,一个冒号,最后是行号。

解决上述任务以继续下一个问题,或阅读 解决方案