import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?!.*\\/s\\/123)(?!.*\\/s\\/32A )(?!.*atr\\/will)([\\/a-zA-Z]*)\\/_MyWord\\/(.*)$";
final String string = "/s/123/QWERERTYU/_MyWord/45454545\n"
+ "atr/will/DFGH/FGHJK/GHJK/_MyWord/DFGHJ452\n"
+ "/DFGH/FGHJK/GHJK/_MyWord/DFGHJ452\n"
+ "HiCanYouHelpMe/_MyWord/fgh\n"
+ "/_MyWord/HiCanYouHelpMefgh\n\n"
+ "I am handling user input in my program by using regular exp.\n\n"
+ "the string contains /_MyWord/ and only a-z is accepted before /_MyWord/.\n"
+ "the string not contain /s/123, /s/32A and atr/will in the beginning.\n"
+ "My try:\n\n"
+ "^(?!.*/s/123)(?!.*/s/32A )(?!.*atr/will)([/a-z]+)/_MyWord/(.*)$\n"
+ "Example:\n\n"
+ "/s/123/QWERERTYU/_MyWord/45454545 -> fail\n"
+ "/DFGH/FGHJK/GHJK/_MyWord/DFGHJ452 -> OK\n"
+ "HiCanYouHelpMe/_MyWord/fgh -> OK\n"
+ "/_MyWord/HiCanYouHelpMefgh -> OK";
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