Further improve normalization

This commit is contained in:
Timo Westkämper 2016-04-21 21:08:50 +03:00
parent 43e3e86a31
commit fe4dea1e82
2 changed files with 4 additions and 3 deletions

View File

@ -26,7 +26,7 @@ public final class Normalization {
// TODO simplify
private static final Pattern FULL_OPERATION = Pattern.compile(
"(?<![\\d*/\"?' ])" + "(\\b|\\(|\\s+)" +
"(?<![\\d*/\"?'\\- ])" + "(\\b|\\(|\\s+)" +
"(" + NUMBER + WS + "[+\\-/*%]" + WS + ")+" + NUMBER + WS +
"(?![\\d*/\"' ])");

View File

@ -83,6 +83,7 @@ public class NormalizationTest {
assertEquals("2 + 3 * hours", Normalization.normalize("2 + 3 * hours"));
assertEquals("2 + 3 * 0hours", Normalization.normalize("2 + 3 * 0hours"));
assertEquals("a like '1 + 2 ' and b like '2 * 3'", Normalization.normalize("a like '1 + 2 ' and b like '2 * 3'"));
assertEquals("xxx in ('ABC123-4567-3214-EDBD982')", Normalization.normalize("xxx in ('ABC123-4567-3214-EDBD982')"));
}
@Test
@ -108,8 +109,8 @@ public class NormalizationTest {
@Test
public void Substring() {
assertEquals("substring(cat.name,1,locate(?1,cat.name)-1)",
Normalization.normalize("substring(cat.name,0+1,locate(?1,cat.name)-1-0)"));
assertEquals("substring(cat.name,1,locate(?1,cat.name)-1-2)",
Normalization.normalize("substring(cat.name,0+1,locate(?1,cat.name)-1-2)"));
}
@Test