import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?P<Street>(?:[A-Za-z\\d]+\\h)+)\\h{2,}(?P<LAT>-?\\d*\\.\\d+)\\h{2,}(?P<LON>-?\\d*\\.\\d+)$";
final String string = "A Kriel Street -25.69664263 28.41030434\n"
+ "Abraham Mogopodi Avenue -25.71338241 28.37033247\n"
+ "Absalome Street -25.70997386 28.3568847\n"
+ "Alan Paton Street -25.72122505 28.42021664\n"
+ "Alfred Nzo Crescent -25.6882444 28.41519928\n"
+ "Annah Mabusela Street -25.70656941 28.34339845\n"
+ "Anton Lembede Street -25.71813448 28.41874969\n"
+ "Aphane Nhlapo Street -25.7208474 28.38598257\n"
+ "Apple Close -25.71151327 28.38914898\n"
+ "Areyeng Street -25.72404151 28.38545561\n"
+ "Aseletho Street -25.71910848 28.41628606\n"
+ "Azikwelwa Street -25.70616386 28.40821879\n"
+ "Azondo Street -25.69615534 28.41117811\n"
+ "B Z Ndlazi Street -25.71074853 28.37073878\n"
+ "Badanile Avenue -25.71883255 28.42320088\n"
+ "Bahula Street -25.70728106 28.35488834\n"
+ "Baloyi Close -25.72553726 28.38641741\n"
+ "Bana Street -25.70942133 28.40631067\n"
+ "Banana Close -25.71194649 28.39090203";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
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