Я пытаюсь создать метод, который принимает параметр String, а затем возвращает двумерный массив String с именами и значениями параметров.
protected final String[][] setParams (String parms) {
String[][] params;
int i = 0;
Pattern p = Pattern.compile(NEED_REGEX_HERE);
Matcher m = p.matcher(parms);
params = String[m.groupCount()][2];
while (m.find()) {
params[i][0] = m.group(i).subString(0,m.group(i).indexOf('='));
params[i][1] = m.group(i).subString(m.group(i).indexOf('='));
i++;
}
return params;
}
Некоторые примеры ввода будут (внутри кавычек):
"Name=Ryan;\;Name=John"
"Name=Ryan;Name=John"
"Name=Ryan"
"Name=Ryan;Index=1"
Итак, ";" является разделителем списка, а оператор присваивания "=" обозначает допустимый параметр, т.е. «\» - это выброшенное значение. По сути, я ищу регулярное выражение, которое позволило бы мне сделать это, или, если кто-то может предложить такое, более элегантное решение.