import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "((\\s*\\b([a-zA-Z_]*)\\b)\\s*((\\s*=\\s*(('[\\w\\-_#@,.!@#$%^&*()\\s]*')))|((\\s+\\bLIKE\\b\\s+('[\\w\\-_#@,.!@#$%^&*()\\s]*')))|(((\\s+\\bIN\\b\\s+\\('[\\w\\-_#@,.!@#$%^&*()\\s]+'(, '[\\w\\-_#@,.!@#$%^&*()\\s]+')*\\)))))((\\s*\\b(AND|OR)\\b\\s*)(\\s*\\b([a-zA-Z_]*)\\b)\\s*((\\s*=\\s*(('[\\w\\-_#@,.!@#$%^&*()\\s]*')))|((\\s+\\bLIKE\\b\\s+('[\\w\\-_#@,.!@#$%^&*()\\s]*')))|(((\\s+\\bIN\\b\\s+\\('[\\w\\-_#@,.!@#$%^&*()\\s]+'(, '[\\w\\-_#@,.!@#$%^&*()\\s]+')*\\))))))*)";
final String string = "sponsor_type_trial_company = 'Sponsor' AND\n"
+ "brief_title_trial LIKE '%heme%' AND brief_title_trial LIKE '%basket%'\n"
+ "outcome_trial_primary_outcome = 'Bladder Cancer'\n"
+ "AND sponsor_type_trial_company = 'Sponsor' AND\n"
+ "overall_status_trial IN ('Recruiting', 'Enrolling by invitation') AND trial_status_trial = 'Open' AND official_title_trial LIKE '%Japan%'\n\n\n\n\n"
+ "overall_status_trial IN ('Recruiting', 'Not yet recruiting', 'Active, not recruiting') AND biomarker_strategy_trial_biomarker = 'HER2 low' AND indication_trial_indication = 'Breast Cancer'\n\n\n\n"
+ "trial_phase_trial='Phase 3' AND stage_trial_indication_stage='Stage IV' AND outcome_acronym_trial_primary_outcome='PFS'";
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