Допустим, например, что у меня есть регулярное выражение, как это:Есть ли способ использовать список параметров строки с регулярным выражением (с группами) для построения новой строки?
"The quick (red|brown|blue|yellow) fox (jumps|leaps) over the lazy (dog|cat)."
Это регулярное выражение имеет 3 сгруппированных компоненты - если он сравнивается с заданной строкой, то регулярное выражение апи позволит вам легко извлечь значение внутри каждого группа.
Теперь, скажем, у меня есть 3 строки:
["red", "leaps","cat"]
Если мы делаем предположение, что все символы в регулярных выражениях, которые не являются внутри группы только буквальные текстовые символы - есть способ, чтобы затем вставить каждая из этих трех строк в соответствующую группу в исходном регулярном выражении, что приводит к выходной строке, которая объединяет негруппированную часть регулярного выражения? В этом случае, в результате «Быстрая красная лиса прыгает по ленивой кошке». Предпочтительно, без необходимости иметь строку, которая уже соответствует регулярному выражению.
Я хочу сделать это на Java - я уверен, что java.util.regex не поддерживает это, но я подумал, может быть, там будет сторонняя библиотека, которая могла бы позволить это сделать , Может ли кто-нибудь дать мне несколько указателей?
Почему бы не использовать библиотеку шаблонов? Какую цель вы имеете в виду? –
Является ли строка регулярных выражений последовательной? Или разрешено иметь что-то вроде '' Быстрая% s лиса% s за ленивые% s. "? – BalusC
Я ищу что-то вроде реверса django() для сопоставлений url. Django позволяет сопоставлять регулярные выражения вызывающим, а при использовании функции reverse() группы становятся параметрами вызываемого. Пример:/user/(\ d +)/maps to home (user_id), поэтому reverse (home, 12) возвращает «/ user/12 /» (в основном возвращает URL-адрес, который будет отображаться на нем). Теперь, когда я выкопал код в django, похоже, что он использует довольно сложный (и интересный!) Бит кода, который вручную анализирует регулярное выражение для создания объекта, который может генерировать обратное сопоставление URL из списка arg , Я могу просто переопределить в java. – mpobrien