Моя цель - преобразовать это
({1, 2}, foo, [2, 3], foo, (3, 4), (3, 4))
в это
(
{1, 2},
foo,
[2, 3],
foo,
(3, 4),
(3, 4)
)
Если вам интересно, где здесь функция, просто мысленно добавьте foo
в начале.
Моя попытка состояла в том, чтобы сопоставить обратную строку с чем-то вроде этого
(\s*)[),](?:(\}(?:[^{}]*|(?R))*\{|\)(?:[^()]*|(?R))*\(|\](?:[^[\]]*|(?R))*\[)\w*)
Идея здесь состоит в том, чтобы сопоставить шаблон, начинающийся с, возможно, пустой группы пробелов (которую я хочу заменить на новую строку)затем запятая, а затем аргумент, который может содержать списки, вызовы функций, наборы и т. д.
Я пытаюсь добиться всего, просто используя подстановку.Но сейчас я должен использовать немного кода, чтобы делать то, что я хочу.
Не беспокойтесь, предлагая использовать средство форматирования кода.Я знаю о них.Я хочу, чтобы решение с pcre было минимально возможным, с таким уродливым регулярным выражением, как требуется.