diff --git a/metafacture-commons/src/main/java/org/metafacture/commons/tries/SimpleRegexTrie.java b/metafacture-commons/src/main/java/org/metafacture/commons/tries/SimpleRegexTrie.java index 7cd49a7b5..2284eeb87 100644 --- a/metafacture-commons/src/main/java/org/metafacture/commons/tries/SimpleRegexTrie.java +++ b/metafacture-commons/src/main/java/org/metafacture/commons/tries/SimpleRegexTrie.java @@ -28,8 +28,11 @@ */ public class SimpleRegexTrie
{ + // Non-empty character class, containing non-[] characters, e.g. + // matches: `lit-[A]`, `lit-[AB]`, does not match: `a[].1`, `a[].1.b[].1` + public static final String SIMPLE_CHARACTER_CLASS = ".*\\[[^\\[\\]]+\\].*"; + private final WildcardTrie
trie; - public static final String SIMPLE_CHARACTER_CLASS = "\\[.+\\]"; public SimpleRegexTrie() { trie = new WildcardTrie
();
@@ -43,7 +46,7 @@ public SimpleRegexTrie() {
* @param value value to associate with the key pattern
*/
public void put(final String keys, final P value) {
- if (keys.matches(".*" + SIMPLE_CHARACTER_CLASS + ".*")) {
+ if (keys.matches(SIMPLE_CHARACTER_CLASS)) {
int charClassStart = keys.indexOf('[', 0);
final int charClassEnd = keys.indexOf(']', 1);
String begin = keys.substring(0, charClassStart);
diff --git a/metafacture-commons/src/test/java/org/metafacture/commons/tries/SimpleRegexTrieTest.java b/metafacture-commons/src/test/java/org/metafacture/commons/tries/SimpleRegexTrieTest.java
index 6c501c76f..65e771ca4 100644
--- a/metafacture-commons/src/test/java/org/metafacture/commons/tries/SimpleRegexTrieTest.java
+++ b/metafacture-commons/src/test/java/org/metafacture/commons/tries/SimpleRegexTrieTest.java
@@ -41,7 +41,8 @@ public void testWithSimpleCharacterClass() {
public void testWithEmptyCharacterClass() {
final SimpleRegexTrie