2015-05-02 3 views
0

Пытается создать регулярное выражение, чтобы захватить это:Regex для захвата TEST [некоторый текст] отдельно

TEST[some text] 

и это:

TEST[some text] | TEST[some text]  | TEST[some text] 

но захватить последнюю группу в 3-х отдельных элементах.

Я добрался до /([A-Z]+\[.+\])/g, но это захватывает линию выше как 1 пункт.

Он также не учитывает вложенные элементы, такие как:

A[ 
    B[text] 
    More text. 
    C[and some more text] 
] 

Эффективно я хочу, чтобы захватить A (и связанные с ним значения в пределах скобок), B (и его ценности), More text. и C (и его значения) отдельно.

В основном структура идет как:

KEY[VALUE] 

и VALUES может состоять из нескольких пар ключ/значение.

Возможно, существует еще один общий способ создания/анализа этих структур текста (например, файла YAML), о котором я не знаю. Какие-либо предложения?

Извините за довольно бессвязный и открытый вопрос.

+0

Пожалуйста, прочитайте первую пулю [этого сообщения] (http://meta.stackoverflow.com/q/290740/3764814) - какое регулярное выражение * аромат * вы хотите использовать? –

ответ

1

Действительно есть вкус принять во внимание, но то, что вы ищете может быть сделано без слишком много вкуса конкретного материала

/([A-Z]+\[[^\]]+\])/g 

Поскольку [^\]]+ будет соответствовать любому не «]» характер, вы выиграли Не получайте вложенные. НО, это не соответствует A один из ваших примеров, но я думаю, что это тоже не нужно?

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