こんにちは、私は正規表現の世界では非常に新しいです。Java のテスト文字列のタイムスタンプ、場所、および「id_str」フィールドを抽出したいと思います。
20110302140010915|{"user":{"is_translator":false,"show_all_inline_media":false,"following":null,"geo_enabled":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/a\/1298918947\/images\/themes\/theme1\/bg.png","listed_count":0,"favourites_count":2,"verified":false,"time_zone":"Mountain Time (US & Canada)","profile_text_color":"333333","contributors_enabled":false,"statuses_count":152,"profile_sidebar_fill_color":"DDEEF6","id_str":"207356721","profile_background_tile":false,"friends_count":14,"followers_count":13,"created_at":"Mon Oct 25 04:05:43 +0000 2010","description":null,"profile_link_color":"0084B4","location":"WaKeeney, KS","profile_sidebar_border_color":"C0DEED",
私はこれを試しました
(\d*).*?"id_str":"(\d*)",.*"location":"([^"]*)"
遅延量指定子 (regexbuddy で 3000 ステップ) を使用すると、多くのバックトラックがあり.*?
ますが、アンカー "id_str" と "location" の間の文字数は常に同じではありません。また、文字列に場所が見つからない場合、壊滅的な事態になる可能性があります。
1) 不要な後戻りを避けるにはどうすればよいですか?
と
2) 一致しない文字列を見つける方が速いですか?
ありがとう。