たとえば、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;
}
モードパターンが多い場合は非常に非効率的です。
すべてのパターンが直交していると仮定すると、1つのDFAで1回のパスで十分であることが簡単にわかります。それで、すべてのパターンを一緒に組み合わせることができるそのような正規表現プロセッサは存在しますか?