Текст извлечения корзины в вложенных кавычках [Java/JSON] [Дубликат]JAVA

Программисты JAVA общаются здесь
Anonymous
Текст извлечения корзины в вложенных кавычках [Java/JSON] [Дубликат]

Сообщение Anonymous »

Один следующий текст, я хочу извлечь значения в рамках кавычки, например, «хэш».
значение, связанное с хэшем, с самого начала до окончания кавычек, в данном случае: < /p>


00000E96C46D15AEAF9EF6F88A295A8F17207D4CD9AC074D2314680095BEFC854 D5A00600602AF2FE03A24B61566CA2D8A6B858B0AF840309AE449316833923
< /blockquote>

Мой шаблон для этого будет < /p>

Scanner s = new Scanner(new File(path.toString()));
Pattern pattern = Pattern.compile("\"hash\": \".*\"");
String nextMatch = s.findWithinHorizon(pattern, 0);
< /code>

Объяснение шаблона: я смотрю на последовательность, начинающуюся в любом месте, с кавычки, за которым следует слово hash и еще одна кавычка. Тогда A ":" следует за + 1 пространство. После этого столько текста, пока не появится еще одна кавычка. < /P>

К сожалению, этот шаблон не работает, и я не понимаю почему. "00000E96C46D15AEAF9EF6F88A295A8F17207D4CD9AC074D2314680095BEFC854D5A00600602AF2FE03A24B61566CA2D8A6B858B0AF8403AI49316683333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333A6B858B0AF8409AE493168" "Block": "{\" type \ ": \" Block \ ", \" Transactions \ ": [], \" TimeStamp \ ":
\" 2017-09-07t07: 09: 52.628676 \ ", \" reward \ ":
\ "D5075B5D43CF97B73BD6483488F1F6A648DC83ADD93A37BB0817B17331FD51 D989E2CF9FD3C8C0206FB89B84CF9E151B7D2123E4F6D71C95868BDFE1F4AA6B9 E754A51A8E04BD49F5EEC1931840315BC428444B715250534612DA5809BDB14 C496AD1A2D4B00823B80AACB7023667CA6923088B438DC5053D5BBF29A61620B2 8AFA5D52D325ED8AA073A7F3A37E675C6BDF2DAD09B809C8F3C6020639276445 8EFFB2C512D072AF0CC7EA96058E1E19ECCC72072939D5D16409843151B556077 15f7ea91191914BE9C88F1E719ED5CC5E957379777FEEEDBBD96B9150CE5A54C491AA94EAB58DF129445D89C9F8937C598BA95380A42C222E06ED2F0DA4993 1E99E25554C122A095B2520BA3DCFF6585C8C07CC6DA9D3AD7E71A0ADE2C6704C7C27ACA3337916794EFC4FA1A6E97844BBCE1173E7B408SE86A8A1A6E97844BBCE1173EI7B4086A6A1A6E97844BCE117 8092C06BB914510A97EDFFDDA55EC09141BBFDF5AF7029AA82E5F7E7DA1CB178 1426FEF33721B66E727EA7AEF19FB5DEA6EDC3E16C6D7F08F04F5067DC9A2D0C0 1015C1AF848A1FCD6C64EEF039C9C5D8E737C0655A97B6BC876854A34AD94FCD 29218524C6C7881BD1AE4A9279EDC12F95720D8A010D9A4C7DD19A4415BD2687 FB462D95DA84369544B5FD82D92B98935650A1FD7FA215BA95E8B20D8594C50CB 9A8BC683AF32133C007BC0DFF3EDD36E0C20688385891788DE63A5ADCB \ ",
\ "Сложность \": \ "0 \", \ "nonce \":
\ "feec6d57f31d8aee18889026e4844d96de6b874013a1932018e809c60c4501903 3389671DCC2E3138A555705CEC95E365D79D3E68A909EFCF15D0D137770131 \ ",
\ "Parent \":
\ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f \"} ",
" type ":" Block_hash "} < /pabquque> < /pabquque> < /pabquque> />
Весь мой код: < /p>

public class TryToStream {

static String url = "SorryICantShowYouThatOne";
static String charset = "UTF-8";

public static void main(String[] args) throws IOException, ParseException {
JSONParser parser = new JSONParser();

URL getURL = new URL(url + "get?start_at=");
int counter = 0;
boolean inputAvail = true;
//clear textfile
PrintWriter pw = new PrintWriter("jsonFormatted.txt");

URL tmpURL = new URL(url + "get?start_at=" + counter);
URLConnection connection = tmpURL.openConnection();
InputStream is = connection.getInputStream();
JSONArray json = (JSONArray) parser.parse(new BufferedReader(new InputStreamReader(is)));
// FileOutputStream fos = new FileOutputStream(new File("output2.txt"), true);
BufferedWriter bw = new BufferedWriter(new FileWriter("jsonFormattedStream.txt"));
bw.write(json.toJSONString());
bw.close();

Iterator iter = json.iterator();
boolean flagForTesting = true;
BufferedWriter bw2 = new BufferedWriter(new FileWriter("jsonFormatted.txt"));
Pattern pattern = Pattern.compile("\"hash\": \"(.*?)\"");

while (iter.hasNext() && flagForTesting) {

Matcher matcher = pattern.matcher(iter.next().toString());
matcher.find();
System.out.println(matcher.group(1));
flagForTesting = false;
}
bw2.close();

System.out.println("End");
}
}
< /code>

Если я попытаюсь сопоставить предложенную regex, я не получаю совпадение. \ "TimeStamp \":
\ "2017-09-07t07: 09: 52.628676 \", \ "reward \":
\ "D5075B5D43CF97B73BD6483488F1F6A648DC83ADD93A37BB0817B17331FD51 D989E2CF9FD3C8C0206FB89B84CF9E151B7D2123E4F6D71C95868BDFE1F4AA6B9 E754A51A8E04BD49F5EEC1931840315BC428444B715250534612DA5809BDB14 C496AD1A2D4B00823B80AACB7023667CA6923088B438DC5053D5BBF29A61620B2 8AFA5D52D325ED8AA073A7F3A37E675C6BDF2DAD09B809C8F3C6020639276445 8EFFB2C512D072AF0CC7EA96058E1E19ECCC72072939D5D16409843151B556077 15f7ea91191914BE9C88F1E719ED5CC5E957379777FEEEDBBD96B9150CE5A54C491AA94EAB58DF129445D89C9F8937C598BA95380A42C222E06ED2F0DA4993 1E99E25554C122A095B2520BA3DCFF6585C8C07CC6DA9D3AD7E71A0ADE2C6704C7C27ACA3337916794EFC4FA1A6E97844BBCE1173E7B408SE86A8A1A6E97844BBCE1173EI7B4086A6A1A6E97844BCE117 8092C06BB914510A97EDFFDDA55EC09141BBFDF5AF7029AA82E5F7E7DA1CB178 1426FEF33721B66E727EA7AEF19FB5DEA6EDC3E16C6D7F08F04F5067DC9A2D0C0 1015C1AF848A1FCD6C64EEF039C9C5D8E737C0655A97B6BC876854A34AD94FCD 29218524C6C7881BD1AE4A9279EDC12F95720D8A010D9A4C7DD19A4415BD2687 FB462D95DA84369544B5FD82D92B98935650A1FD7FA215BA95E8B20D8594C50CB 9A8BC683AF32133C007BC0DFF3EDD36E0C20688385891788DE63A5ADCB \ ",
\ "Сложность \": \ "0 \", \ "nonce \":
\ "feec6d57f31d8aee18889026e4844d96de6b874013a1932018e809c60c4501903 3389671DCC2E3138A555705CEC95E365D79D3E68A909EFCF15D0D137770131 \ ",
\ "parent \":
\ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000ре Эш "," Хэш ":" 00000E96C46D15AEAF9EF6F88A295A8F17207D4CD9AC074D2314680095BEF C854D5A00600602AF2FE03A24B61566CA2D8A6B858B0AF840309AE449316833923 "}
< /blockquote>

Подробнее здесь: https://stackoverflow.com/questions/470 ... -java-json

Вернуться в «JAVA»