什么是Regexp :: Assemble的Java等价物?

时间:2012-02-14 08:25:49

标签: java regex perl

我遇到了Perl模块Regexp::Assemble,它接受​​任意数量的正则表达式,并将它们组合成一个与所有正则表达式匹配的正则表达式。

是否有类似的Java库?为每个输入编写组合正则表达式将非常繁琐。

3 个答案:

答案 0 :(得分:2)

regexp可能对你有所帮助......链接指向一个类似于你想要的例子,但我不确定它是否适用于Regex字典。此外,您可能希望通过电子邮件发送作者,我相信他可以帮助您找到确切用例的解决方案。

答案 1 :(得分:0)

我认为这只是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, "|") + ")";

答案 2 :(得分:0)

对于我的用例,我用Regexp :: Assemble编写了一个脚本,它将生成我想要的RE集并将它们写入文件,由主java应用程序读取 - 这对你有用吗?

相关问题