import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^([a-zäöüÄÖÜß\\s\\d.,-]+?)\\s*([\\d\\s]+(?:\\s?[-|+\\/]\\s?\\d+)?\\s*[a-z]?)?\\s*(?:\\d{5})?\\s*(.+)?$";
final String string = "Gewerbegebiet Ziesegrund 17440 Hohendorf bei Wolgast\n"
+ "Sonnenwiechser Str. 42 1/2 83052 Bruckmühl, Mangfall\n"
+ "Am Hamberg 4/1 79400 Kandern\n"
+ "Brüggerfeld 14 + 20 29574 Ebstorf\n"
+ "Straße des 17. Juni 18+19 88485 Berlin\n"
+ "Hochstr. 19 88045 Friedrichshafen\n"
+ "Straße des 17. Juni 23-25 a 12345 Berlin-Mitte\n"
+ "Domerschulstrasse 234 34070 Verlin\n"
+ "ERDINGERSTR.32 84405 DORFEN\n"
+ "GRüNERSTR. 14 A 67061 LUDWIGSHAFEN\n"
+ "KÖNIGSWINTER STR. 120 53227 BONN\n"
+ "GRÜNER WEG 11A\n"
+ "ERDINGERSTR.32 2443 DORFEN\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html