2012-03-25 3 views
0

У меня длинная строка, формат будет таким же для этой строки, но сообщение n может отличаться. Так что я хочу знать, как это можно извлечь из этого частности строка сообщения из этой сложной строки в JavaИзвлечение определенных слов/строк из сложной строки в java

charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&post_form_id=71c3b72f4049d394140cedf32d39f525&fb_dtsg=AQBY3vp-&feedback_params=%7B%22actor%22%3A%22176851262376586%22%2C%22target_fbid%22%3A%22283157315079313%22%2C%22target_profile_id%22%3A%22176851262376586%22%2C%22type_id%22%3A%227%22%2C%22source%22%3A%222%22%2C%22assoc_obj_id%22%3A%22%22%2C%22source_app_id%22%3A%220%22%2C%22extra_story_params%22%3A%7B%22photo_viewer_version%22%3A%222%22%7D%2C%22content_timestamp%22%3A%221327693760%22%2C%22check_hash%22%3A%22129f5441c4cb4266%22%7D&translate_on_load=&add_comment_text_text=I%20didn't%20got%20any%20msg%20in%20my%20mailbox%20%3A(&add_comment_text=I%20didn't%20got%20any%20msg%20in%20m%20inbox%20%3A(&comment_replace=optimistic_comment_2931473608_0&comment=1&lsd&post_form_id_source=AsyncRequest&__user=18802987&phstamp=165895111811245853 

я хочу, чтобы извлечь эту конкретную строку в формате ниже

I didn't got any msg in my mailbox 
+0

ли формат: someVariableLengthVariableHexAsciiCharacters + theTextIWant + someVariableLengthVariableHexAsciiCharacters? Укажите формат. – Java42

+0

OP предположительно после значения для ключа 'add_comment_text_text'. – aioobe

+0

+1 aioobe, @ Zara - не получил? –

ответ

4

Вот регулярное выражение-решение:

String input = "charset_test=%E2%8...3A(&add_comment_text=I%20didn't%20got%20any" 
      + "%20msg%20in%20m%20inbox%20%3A(&comment_replace=optim" 
      + "istic_comment_2931473608_0&comment=1&lsd&post_form_id_source=" 
      + "AsyncRequest&__user=18802987&phstamp=165895111811245853"; 

Pattern p = Pattern.compile("add_comment_text_text=(.*?)[&$]"); 
Matcher m = p.matcher(input); 

if (m.find()) { 
    String value = URLDecoder.decode(m.group(1), "UTF-8"); 
    System.out.println(value); 
} 

Выход:

I didn't got any msg in my mailbox :(
Смежные вопросы