2023 © RegexOne
邮箱 | Twitter
在这个例子中,我们将使用 Android adb 调试会话的实际输出。你的目标是使用我们迄今为止学习的任何正则表达式技术来**提取**堆栈跟踪行的**文件名**、**方法名**和**行号**(它们遵循“at package.class.methodname(filename:linenumber)”的形式)。
祝你好运!
任务 | 文本 | 捕获组 | |
跳过 | W/dalvikvm( 1553): threadid=1: uncaught exception | ||
跳过 | E/( 1553): FATAL EXCEPTION: main | ||
跳过 | E/( 1553): java.lang.StringIndexOutOfBoundsException | ||
捕获 | E/( 1553): at widget.List.makeView(ListView.java:1727) | makeView ListView.java 1727 | |
捕获 | E/( 1553): at widget.List.fillDown(ListView.java:652) | fillDown ListView.java 652 | |
捕获 | E/( 1553): at widget.List.fillFrom(ListView.java:709) | fillFrom ListView.java 709 |
解决方案 | 这个也可能有点棘手,但我们实际上只需要捕获方法名、文件名和行号。这可以通过使用表达式 (\w+)\(([\w\.]+):(\d+)\) 来实现,其中第一个捕获组是方法,后面跟着一个转义的括号,然后是文件名,一个冒号,最后是行号。 |