問題7:ログファイルから情報を抽出する

この例では、Android adbデバッグセッションからの実際の出力を使用します。あなたの目標は、これまで学んだ正規表現のテクニックを使用して、スタックトレースの行のファイル名メソッド名、および行番号抽出することです(それらは「at package.class.methodname(filename:linenumber)」の形式に従います)。

頑張ってください!

演習7:ログエントリからデータを抽出する
タスク テキスト キャプチャグループ  
skip W/dalvikvm( 1553): threadid=1: uncaught exception To be completed
skip E/( 1553): FATAL EXCEPTION: main To be completed
skip E/( 1553): java.lang.StringIndexOutOfBoundsException To be completed
capture E/( 1553): at widget.List.makeView(ListView.java:1727) makeView ListView.java 1727 To be completed
capture E/( 1553): at widget.List.fillDown(ListView.java:652) fillDown ListView.java 652 To be completed
capture E/( 1553): at widget.List.fillFrom(ListView.java:709) fillFrom ListView.java 709 To be completed
解決策

これも少しトリッキーですが、実際にキャプチャしたいのはメソッド名、ファイル名、行番号です。これは、式(\w+)\(([\w\.]+):(\d+)\)を使用することで実現できます。ここで、最初のキャプチャグループはメソッド、次にエスケープされた括弧、次にファイル名、コロン、そして最後に行番号が続きます。

上記のタスクを解決して次の問題に進むか、解決策を読んでください。