From e1e7e38482de8cf8f6d4fd8735b6e43ad2a13cb8 Mon Sep 17 00:00:00 2001 From: Adrien Hopkins Date: Thu, 28 Nov 2019 14:16:02 -0500 Subject: You can now perform reciprocal conversions (e.g. s <-> Hz) Fixed some bugs in unit-number ordering ("10 m^2" was interpreted as "(10 m)^2", e-notation was ignored) --- src/org/unitConverter/unit/UnitDatabase.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/org/unitConverter/unit') diff --git a/src/org/unitConverter/unit/UnitDatabase.java b/src/org/unitConverter/unit/UnitDatabase.java index 9df34a7..65d52bf 100644 --- a/src/org/unitConverter/unit/UnitDatabase.java +++ b/src/org/unitConverter/unit/UnitDatabase.java @@ -978,9 +978,10 @@ public final class UnitDatabase { static { // place brackets around any expression of the form "number unit", with or without the space EXPRESSION_REPLACEMENTS.put(Pattern.compile("((?:-?[1-9]\\d*|0)" // integer - + "(?:\\.\\d+)?)" // optional decimal point with numbers after it + + "(?:\\.\\d+(?:[eE]\\d+))?)" // optional decimal point with numbers after it + "\\s*" // optional space(s) - + "([a-zA-Z]+)" // any string of letters + + "([a-zA-Z]+(?:\\^\\d+)?" // any string of letters + + "(?:\\s+[a-zA-Z]+(?:\\^\\d+)?))" // optional other letters + "(?!-?\\d)" // no number directly afterwards (avoids matching "1e3") ), "\\($1 $2\\)"); } @@ -1473,8 +1474,6 @@ public final class UnitDatabase { modifiedExpression = replacement.getKey().matcher(modifiedExpression).replaceAll(replacement.getValue()); } - System.out.println(modifiedExpression); - return this.prefixExpressionParser.parseExpression(modifiedExpression); } -- cgit v1.2.3