2023 © RegexOne
メール | Twitter
この例では、Android adbデバッグセッションからの実際の出力を使用します。あなたの目標は、これまで学んだ正規表現のテクニックを使用して、スタックトレースの行のファイル名、メソッド名、および行番号を抽出することです(それらは「at package.class.methodname(filename:linenumber)」の形式に従います)。
頑張ってください!
| タスク | テキスト | キャプチャグループ | |
| skip | W/dalvikvm( 1553): threadid=1: uncaught exception | ![]() |
|
| skip | E/( 1553): FATAL EXCEPTION: main | ![]() |
|
| skip | E/( 1553): java.lang.StringIndexOutOfBoundsException | ![]() |
|
| capture | E/( 1553): at widget.List.makeView(ListView.java:1727) | makeView ListView.java 1727 | ![]() |
| capture | E/( 1553): at widget.List.fillDown(ListView.java:652) | fillDown ListView.java 652 | ![]() |
| capture | E/( 1553): at widget.List.fillFrom(ListView.java:709) | fillFrom ListView.java 709 | ![]() |
| 解決策 | これも少しトリッキーですが、実際にキャプチャしたいのはメソッド名、ファイル名、行番号です。これは、式(\w+)\(([\w\.]+):(\d+)\)を使用することで実現できます。ここで、最初のキャプチャグループはメソッド、次にエスケープされた括弧、次にファイル名、コロン、そして最後に行番号が続きます。 |