Java RegEx Вопрос? - PullRequest
       7

Java RegEx Вопрос?

0 голосов
/ 28 мая 2011

У меня проблема с RegEx в Java;

моя линия:

CREATE CHAN:NAME=BTSM:1/BTS:2/TRX:5/CHAN:7,CHTYPE=TCHF_HLF,FHSYID=FHSY_0

и я хочу это:

content [0] = BTSM:1/BTS:2/TRX:5/CHAN:7
content [1] = CHTYPE
content [2] = TCHF_HLF
content [3] = FHSYID
content [4] = FHSY_0

Я написал это:

String[] content = value.split("^=/:|,|=|,$");

но это не работает :( пожалуйста, сообщите мне об этом ... Большое спасибо ...

Ответы [ 2 ]

4 голосов
/ 28 мая 2011
String[] content = value.replaceFirst("^[^=]*=", "").split("[,=]");

должен делать то, что вы хотите.

Я не понимаю, как вы получили "^=/:|,|=|,$", поэтому я не могу сказать вам, где вы ошиблись, но вот разбивка того, что он делает.

^ = /:

Это будет пропускать строку =/:, если она встречается в начале, и вставлять пустую строку в начало результатов. Возможно, вы хотели набор символов. [=/:] - это набор символов, который соответствует любому из этих символов.

Это разделит на любую запятую.

=

Это будет разделено на любой знак равенства.

, $

Это пропустит запятую в конце ввода (или непосредственно перед новой строкой в ​​конце ввода), а при пропуске вставит пустую строку в конце результата разделения.

2 голосов
/ 28 мая 2011

Я не знаю, что, черт возьми, та вещь, которую вы передаете split(), но что вам нужно сделать, это разделить в любом случае , или = после удаления всего через первый=.Это можно сделать с помощью:

String[] content = (value.substring(value.indexOf('=') + 1)).split("[,=]");
...