Reputation: 176
I have a JSON string.
{"bounds": {"south west":{ "lng":74.1475868, "lat": 31.366689}, "northeast": { "lng":74.85623 ,"lat": 32.5698746}}
I want to get integers with decimal values using regular expression in Java.
Upvotes: 2
Views: 730
Reputation: 26930
Don't use regex to parse structured documents. There are way better ways to do it. Now in case someone forced you to use regex to do this job by pointing a gun in your head you could use this :
try {
Pattern regex = Pattern.compile("[-+]?\\b[0-9]*\\.?[0-9]+\\b");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
// matched text: regexMatcher.group()
// match start: regexMatcher.start()
// match end: regexMatcher.end()
}
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}
This will catch all numbers integer or not negative or positive with optional integer part.
Note it will not match numbers with scientific notation!
Upvotes: 0
Reputation: 288080
JSON is not a regular language, and can therefore not be parsed by plain regular expressions (and parsing it with non-regular extensions of regular expressions is extremely complicated). Instead, use a Java JSON library.
Upvotes: 4