【发布时间】:2011-05-20 06:26:38
【问题描述】:
比如我要分类c*t => CLASS1,而d*g => CLASS2:
Pattern CXT = Pattern.compile("^c.*t$");
Pattern DXG = Pattern.compile("^d.*g$");
public int classify(String in) {
if (CXT.matches(in)) return CLASS1;
if (DXG.matches(in)) return CLASS2;
return -1;
}
如果有很多模式模式,效率非常低。
假设所有模式都是正交的,很容易看到一个 DFA 中的单次通过就足够了。那么,是否存在可以将所有模式组合在一起的正则表达式处理器?
【问题讨论】:
-
这和Java有什么关系?
-
如何不丢失信息? (即 C 和 D 是不同的回报)
-
模式的第一个字母和你返回的字母有关系吗?
-
好吧,我想知道一个开源Java库,它将多个模式编译成一个,并告诉输入字符串被哪个模式接受。
-
@Seth:我已经更新了问题,谢谢。
标签: java regex recommendation-engine