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 symbols
  • m\u00B2 - m2.

Tags:

Java

Regex