• 締切済み

正規表現について

もしよろしければご教示願います。 現在、Androidで「Runtime.getRuntime().exec("top -n 1 -d 1")」を使い、下記のように表示できるところまではできましたが、特定の文字列を取り出すことができません。 CPU: 0.0% usr 0.0% sys 0.0% nic 100% idle 0.0% io 0.0% irq 0.0% sirq Load average: 0.12 0.80 1.13 1/394 9673 PID PPID USER STAT VSZ %MEM %CPU COMMAND 9673 9672 root R 712 0.1 0.0 top -d 1 -n 1 2489 2386 system S 369m 87.7 0.0 system_server 3101 2386 app_23 S 304m 72.3 0.0 com.android.browser 2581 2386 radio S 279m 66.3 0.0 com.android.phone ・・・ 特定の文字列とはCOMMAND部分です。system_server、com.android.browser等のCOMMAND部分のみを抽出し表示する場合、どのような正規表現で抽出したよいのか、お手数ですがご教示願います。

みんなの回答

  • 55wantan
  • ベストアンサー率100% (2/2)
回答No.3

#1です。 ちょっと言葉足らずでしたね。 split(String regex, int limit) を使えば、分割する回数を限定できるので、top -d 1 -n 1 などにも対応できますね。

masaki-oo
質問者

お礼

再度回答して頂きまして、ありがとうございました。 ご教示頂いた内容で検討してみます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「最後の要素を取り出す」だと top の行みたいに引数を持っているときに困りそうな気がします>#1. 「COMMAND」がどこにあるかは特定できるはずなので, そこに対応する要素だけを取り出す (またはそれ以降の要素を取り出す) 方がいいと思います. 結局は「COMMAND部分」をどう解釈するという問題に帰着するんだけど.

masaki-oo
質問者

お礼

返事が遅れて申し訳ありませんでした。 回答して頂きまして、ありがとうございました。

  • 55wantan
  • ベストアンサー率100% (2/2)
回答No.1

正規表現だとめんどくさそうなので、String#splitで配列に分割してから 最後のデータ取得するんじゃだめですかね?

masaki-oo
質問者

お礼

返事が遅れて申し訳ありませんでした。 回答ありがとうございました。 splitですね、これも一応は検討したのですが、よく分かってなくてw でももう一度検討したいと思います。

関連するQ&A