0

正規表現は初めてなので、自分のパターンをコンパイルするのに苦労しています。

基本的に、私の Android フォンから LogCat を読み込んでおり、この文字列を分割して TextView に表示できるようにしようとしています。

これは、トークン化しようとしている実際の文字列です。 「07-06 12:18:45.790: W/dalvikvm(571): TaintLog: OSNetworkSystem.write(91.121.171.39) がタグ 0x400 のデータを受信 = [POST / HTTP/1.1」

スキャナーメソッドを使用して「タグ」の後に番号を取得できますが、OSnetworkSystem.Write(xxx.xxx.xxx.xxx) から IP アドレスを抽出する必要があります。

IPアドレスを追加できるようにするために何を使用するかについて、誰かが私にいくつかのヒントを提供してくれますか.

4

1 に答える 1

1

さて、正規表現の部分については、私がお手伝いできます。

正規表現:

([0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3})

指定された文字列内の任意の IP アドレスと一致します。

RegExp には、私のワークフローに非常に役立つWeb サイトhttp://rubular.com/を使用しています。「テスト ケース」をいくつでも投入して、正規表現コードを書き始めることができます。


以下のコメントごとに編集します。

車輪を再発明する代わりに。IPv4 Regex に関するすばらしい記事を見つけました: IPv4 ドット付きアドレスに一致する正規表現を作成するにはどうすればよいですか?

基本的に言う:

/^0*([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])\.0*([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])\.0*([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])\.0*([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])$/

長くて複雑です。しかし、この記事を読めば、それが実際に何をするのかをよく理解できるはずです。

私の経験では、正規表現の成功率が複雑で信頼性が高いほど、失敗する可能性が高くなります。重要なデータを正規表現に頼らないことをお勧めします...別の方法を見つけてください。常にあります:)

于 2012-07-13T16:38:13.583 に答える