Find the first occurrence with Regex and Java
To get the first match, you just need to use Matcher#find()
inside an if
block:
String rx = "\\d+(?:,\\d+)?\\s*m\\u00B2";
Pattern p = Pattern.compile(rx);
Matcher matcher = p.matcher("E.g. : 4668,68 m² some text, some text 48 m² etc");
if (matcher.find()){
System.out.println(matcher.group());
}
See IDEONE demo
Note that you can get rid of the alternation group using an optional non-capturing group (?:..)?
Pattern breakdown:
\d+
- 1+ digits(?:,\d+)?
- 0+ sequences of a comma followed with 1+ digits\s*
- 0+ whitespace symbolsm\u00B2
- m2.