import java.util.*;
import java.util.regex.*;
class Ideone
{
{
String input
= "45 + 31.05 * 110 @ 54"; String masterOfRegexes
= "[0-9]+(?:\\.[0-9]+)?|[+]|[*]|[0-9]+|(\\S)"; Pattern pattern = Pattern.compile(masterOfRegexes);
Matcher matcher = pattern.matcher(input);
List<String> result = new ArrayList<>();
while (matcher.find()){
if (matcher.group(1) != null) {
throw new Exception("Unknown char detected!"); } else {
result.add(matcher.group());
}
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CgpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJU3RyaW5nIGlucHV0ID0gIjQ1ICsgMzEuMDUgKiAxMTAgQCA1NCI7CgkJU3RyaW5nIG1hc3Rlck9mUmVnZXhlcyA9ICJbMC05XSsoPzpcXC5bMC05XSspP3xbK118WypdfFswLTldK3woXFxTKSI7CgkJUGF0dGVybiBwYXR0ZXJuID0gUGF0dGVybi5jb21waWxlKG1hc3Rlck9mUmVnZXhlcyk7CgkJTWF0Y2hlciBtYXRjaGVyID0gcGF0dGVybi5tYXRjaGVyKGlucHV0KTsKCQlMaXN0PFN0cmluZz4gcmVzdWx0ID0gbmV3IEFycmF5TGlzdDw+KCk7CgkJd2hpbGUgKG1hdGNoZXIuZmluZCgpKXsKCQkJaWYgKG1hdGNoZXIuZ3JvdXAoMSkgIT0gbnVsbCkgewoJCQkJdGhyb3cgbmV3IEV4Y2VwdGlvbigiVW5rbm93biBjaGFyIGRldGVjdGVkISIpOwoJCQl9IGVsc2UgewoJCQkgICAgcmVzdWx0LmFkZChtYXRjaGVyLmdyb3VwKCkpOyAKCQkJfQoJCX0KCQlTeXN0ZW0ub3V0LnByaW50bG4ocmVzdWx0KTsgCgl9CgkKCQp9