Как регулярное выражение сопоставляет пары внутри парJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как регулярное выражение сопоставляет пары внутри пар

Сообщение Anonymous »

Мой вопрос довольно прост, даже если цель, которой он служит, довольно сложна. Я приведу простой пример:

Код: Выделить всё

AzzAyyAxxxxByyBzzB
Обычно я хотел бы получить все, что находится между A и B. Однако, поскольку часть содержимого между первым A и последним B (одна пара) содержит дополнительные пары AB, мне нужно отодвинуть конец совпадения. (Не уверен, что последняя часть имела смысл).

Итак, я ищу какой-нибудь RegEx, который позволил бы мне получить следующий результат:

Код: Выделить всё

Match 1
Group 1: AzzAyyAxxxxByyBzzB
Group 2: zzAyyAxxxxByyBzz
Тогда я бы сопоставил его еще раз, чтобы получить:

Код: Выделить всё

Match 2
Group 1: AyyAxxxxByyB
Group 2: yyAxxxxByy
И наконец, еще раз, чтобы получить:

Код: Выделить всё

Match 3
Group 1: AxxxxB
Group 2: xxxx
Очевидно, если я попробую (A(.*?)B) для всего ввода, я получу:

Код: Выделить всё

Match x
Group 1: AzzAyyAxxxxB
Group 2: zzAyyAxxxx
Это не то, что я ищу :)

Надеюсь, это имеет смысл. Я понимаю, что это невозможно сделать с помощью RegEx, но я решил спросить некоторых из вас, мастеров регулярных выражений, прежде чем отказаться от этого и попробовать что-то еще. Спасибо!

Дополнительная информация:

Проект, над которым я работаю, написан на Java.

Еще одна проблема заключается в том, что я анализирую документ, который может содержать что-то вроде этого:

Код: Выделить всё

AzzAyyAxxxxByyBzzB
Here is some unrelated stuff
AzzAyyAxxxxByyBzzB
AzzzBxxArrrBAssssB
И верхние пары AB должны быть отделены от нижних пар AB

Подробнее здесь: https://stackoverflow.com/questions/132 ... thin-pairs
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»