import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\b(C(hief )?E(xecutive )?O(fficer)?|Direct(eur|rice)\\sGénérale?|Founder|General\\sManager|Owner|President|Partner|P(r[ée]sidente?)?D(irect(eur|rice))?G([ée]n[ée]rale?))\\b(?!.*\\b(Logistic|Industry|Industrial|Construction|Transport)\\b)";
final String string = "CEO at TechCorp\n"
+ "General Manager of Construction Ltd\n"
+ "Chief Executive Officer at GreenTech\n"
+ "Directeur Général, Retail Co.\n"
+ "Directrice Générale, Fashion House\n"
+ "President of Logistics Firm\n"
+ "Founder of Innovative Solutions\n"
+ "Partner at Finance Group\n"
+ "COO at Healthcare Inc.\n"
+ "Owner of a Design Studio\n"
+ "CTO at Software Development Firm\n"
+ "President of HR Solutions\n"
+ "Junior Consultant at Business Partners\n"
+ "Freelance Marketing Advisor\n"
+ "Investor in Tech Startups\n"
+ "General Manager at Transport Services\n"
+ "CEO of Logistics & Supply\n"
+ "Founder of Non-Profit Organization\n"
+ "Chief Executive Officer at Construction Co.\n"
+ "Partner at Talent Acquisition Firm\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