import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\b(?:UG \\(haftungsbeschränkt\\)|(?:gG|g|Gesellschaft )?mbH|GbR|OHG|[KUeA]G|(?:g|Inv)AG|KGaA|e..?v..?|Limited|Stiftung|PartG(?: mbB)?|Partenreederei|Eigenbetrieb|Einzelunternehmen|Regiebetrieb|VVaG|SC?E|[AK]öR|Reit-AG)\\s*(?:\\&\\s*Co.\\s*(?:KGa?A?|OHG))?\\b";
final String string = "Unternehmen Regex GbR\n"
+ "Unternehmen Regex KG\n"
+ "Unternehmen Regex AG & Co. KG\n"
+ "Unternehmen Regex GmbH & Co. KG\n"
+ "Unternehmen Regex Limited & Co. KG\n"
+ "Unternehmen Regex Stiftung & Co. KG\n"
+ "Unternehmen Regex Stiftung GmbH & Co. KG\n"
+ "Unternehmen Regex UG (haftungsbeschränkt) & Co. KG\n"
+ "Unternehmen Regex OHG\n"
+ "Unternehmen Regex GmbH & Co. OHG\n"
+ "Unternehmen Regex AG & Co. OHG\n"
+ "Unternehmen Regex Partenreederei\n"
+ "Unternehmen Regex PartG\n"
+ "Unternehmen Regex PartG mbB\n"
+ "Unternehmen Regex AG\n"
+ "Unternehmen Regex gAG\n"
+ "Unternehmen Regex GmbH\n"
+ "Unternehmen Regex gGmbH\n"
+ "Unternehmen Regex InvAG\n"
+ "Unternehmen Regex KGaA\n"
+ "Unternehmen Regex AG & Co. KGaA\n"
+ "Unternehmen Regex SE & Co. KGaA\n"
+ "Unternehmen Regex GmbH & Co. KGaA\n"
+ "Unternehmen Regex Stiftung & Co. KGaA\n"
+ "Unternehmen Regex REIT-AG\n"
+ "Unternehmen Regex UG (haftungsbeschränkt)\n"
+ "Unternehmen Regex AöR\n"
+ "Unternehmen Regex eG\n"
+ "Unternehmen Regex Eigenbetrieb\n"
+ "Unternehmen Regex Einzelunternehmen\n"
+ "Unternehmen Regex e. V.\n"
+ "Unternehmen Regex KöR\n"
+ "Unternehmen Regex Regiebetrieb\n"
+ "Unternehmen Regex Stiftung\n"
+ "Unternehmen Regex VVaG\n"
+ "Unternehmen Regex EWIV\n"
+ "Unternehmen Regex SE\n"
+ "Unternehmen Regex SCE\n"
+ "Unternehmen Regex Gesellschaft mbH";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.UNICODE_CASE | Pattern.DOTALL | 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