import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Ideone {
public static void main
(String[] args
) { final Pattern pattern = Pattern.compile(
"\\b(?<!\\.)(?<number>\\d{1,4})(?:(\\.\\d{1,2})?)(?<unit> ml)\\b",
Pattern.CASE_INSENSITIVE);
final Matcher matcher = pattern.matcher("5432 ml");
final Matcher matcher2 = pattern.matcher("54321 ml");
final Matcher matcher3 = pattern.matcher("1234.0 ml");
final Matcher matcher4 = pattern.matcher("Start 12345.0 ml end");
final String result
= matcher.
find() ? matcher.group("number") + matcher.group("unit")
: "";
final String result2
= matcher2.
find() ? matcher2.group("number") + matcher2.group("unit")
: "";
final String result3
= matcher3.
find() ? matcher3.group("number") + matcher3.group("unit")
: "";
final String result4
= matcher4.
find() ? matcher4.group("number") + matcher4.group("unit")
: "";
System.
out.
println(Objects.
equals(result,
"5432 ml")); System.
out.
println(Objects.
equals(result2,
"")); System.
out.
println(Objects.
equals(result3,
"1234 ml")); System.
out.
println(Objects.
equals(result4,
"")); }
}
aW1wb3J0IGphdmEudXRpbC5PYmplY3RzOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXI7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKCmNsYXNzIElkZW9uZSB7CiAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgZmluYWwgUGF0dGVybiBwYXR0ZXJuID0gUGF0dGVybi5jb21waWxlKAogICAgICAgICJcXGIoPzwhXFwuKSg/PG51bWJlcj5cXGR7MSw0fSkoPzooXFwuXFxkezEsMn0pPykoPzx1bml0PiBtbClcXGIiLAogICAgICAgIFBhdHRlcm4uQ0FTRV9JTlNFTlNJVElWRSk7CgogICAgZmluYWwgTWF0Y2hlciBtYXRjaGVyID0gcGF0dGVybi5tYXRjaGVyKCI1NDMyIG1sIik7CiAgICBmaW5hbCBNYXRjaGVyIG1hdGNoZXIyID0gcGF0dGVybi5tYXRjaGVyKCI1NDMyMSBtbCIpOwogICAgZmluYWwgTWF0Y2hlciBtYXRjaGVyMyA9IHBhdHRlcm4ubWF0Y2hlcigiMTIzNC4wIG1sIik7CiAgICBmaW5hbCBNYXRjaGVyIG1hdGNoZXI0ID0gcGF0dGVybi5tYXRjaGVyKCJTdGFydCAxMjM0NS4wIG1sIGVuZCIpOwoKICAgIGZpbmFsIFN0cmluZyByZXN1bHQgPSBtYXRjaGVyLmZpbmQoKQogICAgICAgID8gbWF0Y2hlci5ncm91cCgibnVtYmVyIikgKyBtYXRjaGVyLmdyb3VwKCJ1bml0IikKICAgICAgICA6ICIiOwogICAgZmluYWwgU3RyaW5nIHJlc3VsdDIgPSBtYXRjaGVyMi5maW5kKCkKICAgICAgICA/IG1hdGNoZXIyLmdyb3VwKCJudW1iZXIiKSArIG1hdGNoZXIyLmdyb3VwKCJ1bml0IikKICAgICAgICA6ICIiOwogICAgZmluYWwgU3RyaW5nIHJlc3VsdDMgPSBtYXRjaGVyMy5maW5kKCkKICAgICAgICA/IG1hdGNoZXIzLmdyb3VwKCJudW1iZXIiKSArIG1hdGNoZXIzLmdyb3VwKCJ1bml0IikKICAgICAgICA6ICIiOwogICAgZmluYWwgU3RyaW5nIHJlc3VsdDQgPSBtYXRjaGVyNC5maW5kKCkKICAgICAgICA/IG1hdGNoZXI0Lmdyb3VwKCJudW1iZXIiKSArIG1hdGNoZXI0Lmdyb3VwKCJ1bml0IikKICAgICAgICA6ICIiOwoKICAgIFN5c3RlbS5vdXQucHJpbnRsbihPYmplY3RzLmVxdWFscyhyZXN1bHQsICI1NDMyIG1sIikpOwogICAgU3lzdGVtLm91dC5wcmludGxuKE9iamVjdHMuZXF1YWxzKHJlc3VsdDIsICIiKSk7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oT2JqZWN0cy5lcXVhbHMocmVzdWx0MywgIjEyMzQgbWwiKSk7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oT2JqZWN0cy5lcXVhbHMocmVzdWx0NCwgIiIpKTsKICB9Cn0=