У меня есть следующая строка:Regex вложенных скобок
a,b,c,d.e(f,g,h,i(j,k)),l,m,n
Знал бы сказать мне, как я мог бы построить регулярное выражение, которое возвращает меня только «первый уровень» круглые скобки что-то вроде этого:
[0] = a,b,c,
[1] = d.e(f,g,h,i.j(k,l))
[2] = m,n
Целью было бы сохранить раздел, который имеет тот же самый индекс в круглых скобках, вложенных в манипулирование будущим.
спасибо.
EDIT
Пытаясь улучшить пример ...
Представьте У меня есть эта строка
username,TB_PEOPLE.fields(FirstName,LastName,TB_PHONE.fields(num_phone1, num_phone2)),password
Моя цель состоит, чтобы превратить строку в динамическом запросе. Тогда поля, которые не начинаются с «TB_», я знаю, что они являются полями главной таблицы, иначе я знаю поля informandos в круглых скобках, связанные с другой таблицей. Но мне трудно получить все поля «первый уровень», так как я могу отделить их от связанных таблиц, я мог бы рекурсивно восстановить оставшиеся поля.
В конце концов, будет иметь что-то вроде:
[0] = username,password
[1] = TB_PEOPLE.fields(FirstName,LastName,TB_PHONE.fields(num_phone1, num_phone2))
Я надеюсь, что я объяснил немного лучше, извините.
Я не понимаю ваш пример. –
Не следует сопоставлять '[1]' be '(f, g, h, i.j (k, l))'? Если нет, можете ли вы объяснить немного больше, пожалуйста? – Vache
из того, что я знаю, Regex не может разобрать вложенные структуры – Jonesopolis