2014-12-30 4 views
0

Я пытаюсь совместить все символы между выражением: «memberIdentities» & переменная, которую я установил как summonerID. Я извлекая всю эту информацию из строки под названием MatchInfo, и строка идет как это:Java Compilation Pattern между двумя строками (динамический)

"participantIdentities":[{"participantId":1,"player":{"summonerId":36889900,"summonerName":"intalan","matchHistoryUri":"/v1/stats/player_history/NA1/51395230","profileIcon":744}},{"participantId":2,"player":{"summonerId":32741714,

И он продолжает идти дальше. Поскольку summonerID изменяется, я должен установить его как переменную. Сейчас он установлен в 32741714.

это то, что я до сих пор:

Pattern pattern2 = Pattern.compile(
    "\"participantIdentities\": (.*?)"+summonerID+"", Pattern.DOTALL); 

Matcher matcher2 = pattern2.matcher(matchinfo); 

if (matcher2.find() == true) { 
    participantIDinformation = matcher2.group(1).toString(); 
    System.out.println(participantIDinformation); 
} 

Я ожидал бы вернуть всю информацию между participantID и summonerID, но это не работает.

+0

Что это такое? –

+0

Matcher2.find() возвращает false, поэтому он вообще не распознает шаблон. – Yayahii

+2

Используйте JSON-парсер для этого, пожалуйста. Там есть тонны хорошего парсера JSON, который вы можете выбрать. Не анализируйте его регулярным выражением. – nhahtdh

ответ

1

У вас есть пробел после \"participantIdentities\": в вашем регулярном выражении, но вы не в своих данных.

+0

Действительно, шаблоны регулярных выражений Java не игнорируют пробелы и рассматривают их как пространство в шаблоне. – Wickoo

+0

Ха-ха, вот и все! Спасибо, что указали на эту глупую ошибку :) – Yayahii

Смежные вопросы