Что такое Java-эквивалент Regexp :: Assemble? - PullRequest
4 голосов
/ 14 февраля 2012

Я наткнулся на модуль Perl Regexp :: Assemble , который принимает произвольное количество регулярных выражений и собирает их в одно регулярное выражение, которое соответствует всем отдельным.

IsЕсть ли подобная библиотека для Java?Будет довольно утомительно написать объединенное регулярное выражение для каждого входа.

Ответы [ 3 ]

2 голосов
/ 14 февраля 2012

regexp может помочь вам ... Ссылка указывает на пример, который соответствует тому, что вы хотите, я не уверен, будет ли он работать со словарем Regex или нет.Кроме того, вы можете отправить электронное письмо автору, и я уверен, что он поможет вам найти решение для вашего конкретного случая использования.

0 голосов
/ 16 февраля 2012

Для моего случая использования я написал скрипт для Regexp :: Assemble, который сгенерирует набор необходимых мне RE и запишет их в файл, который будет прочитан основным java-приложением - сработает ли это для вас

0 голосов
/ 14 февраля 2012

Я думаю, что это всего лишь вопрос OR использования регулярных выражений. например если у вас есть регулярные выражения [abc]+ и [xyz]+, вы можете объединить их с (regex1|regex2), что: ([abc]+|[xyz]+). Добавление большего количества регулярных выражений - это просто добавление дополнительных предложений |. Таким образом, вам действительно не нужен «генератор», а скорее цикл. Например:

import org.apache.commons.lang.StringUtils;

List<String> regexlist = new ArrayList<String>();
BufferedReader br = new BufferedReader(new FileReader(file));  
String line = null;
while ((line = br.readLine()) != null) {  
    regexlist.add(line);
} 

String regex = "(?:" + StringUtils.join(regexlist, "|") + ")";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...