2014-10-30 2 views
0

Я пытаюсь создать выражение, которое находит индексный аспект представления массива.Сопоставление с индексами индекса массива

E.g. «myarray [1] [22] [333]» для этой строки ожидаемым результатом должно быть четыре группы: «myarray», 1, 22 и 333;

Я не могу заставить выражение работать с несколькими измерениями, выражение должно совпадать с 1 размером ("array [1]") до N измерений ("array [1] [2] [3] ... «)

+0

как о 'myarray' в одной группе и чисел внутри' [] 'в другой группе? –

+0

Я немного глуп с выражениями ... Это моя попытка: ([a-zA-Z0-9] +) (:? \ [(\ D +) + \]) + –

+0

должно быть простой формой выражение? если вы допустили 'myarr [arr1 [0] [arr2 [1]] [2]] [3]', я боюсь, что regex не подходит для вас, и я могу объяснить, почему. если вы ограничиваете его простой формой, есть решения. – HuStmpHrrr

ответ

0

Похоже, что вы хотите что-то вроде этого,

(^\w+|(?<!^)\G)\[*\K([^\[\]\n]*) 

DEMO

+0

Ваше выражение работает, имеет несколько пустых совпадений, но я могу обработать их в коде ... Спасибо, Авинаш, это второй раз, когда вы мне поможете ;-) –

+0

Ohh yep. Всегда пожалуйста :-) –

0

это похоже на работу
Edit пропустил один символ:

([^][]+) 

Demo

+1

'[^ [\]]' тоже может избавиться от ']'. – HuStmpHrrr

Смежные вопросы