Регулярное выражение для поиска запятых, не находящихся внутри «(и)»

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

,a,b,c,d,"("x","y",z)",e,f,g,

Тогда первые пять и последние четыре запятые должны соответствовать выражению, два между xyz и внутри раздела () не должны.

Я пробовал много комбинаций, но регулярные выражения для меня все еще немного туманны.

Я хочу использовать его с методом разделения в Java. Пример короткий, но он может быть намного длиннее и содержать более одного раздела между «(и)». Метод split получает выражение, и если некоторый текст (в данном случае запятая) совпадает с выражением, он будет разделителем.

Итак, хочу сделать что-то вроде этого:

String keys[] = row.split(expr);
System.out.println(keys[0]); // print a
System.out.println(keys[1]); // print b
System.out.println(keys[2]); // print c
System.out.println(keys[3]); // print d
System.out.println(keys[4]); // print "("x","y",z)"
System.out.println(keys[5]); // print e
System.out.println(keys[6]); // print f
System.out.println(keys[7]); // print g

Спасибо!

5
задан Alaor 7 August 2010 в 14:20
поделиться