import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?<=[\\.,;\\s\\t\\n])[a-z0-9\\-]{2,}(?=[\\.,;\\s\\t\\n])";
final String string = " -a- -a-ll- [Enter KING HENRY, LORD JOHN OF , -,the;, LANCASTER , , the EARL\n"
+ "!and =all =12 ,123-,;, -qw !all a-a -doof I -i ,9ab+\n"
+ "xxx xx x !all ?nicht !and -doof -12 -aa\n"
+ " of WESTMORELAND, SIR WALTER BLUNT, and others]\n"
+ "12 d12a ; a1 d1a, ! ,aaaaa aaa ,aa1 .1a , ; !.a12\n"
+ "KING HENRY IV So !shaken as we, the are, so wan with care,\n"
+ " Find we a time; for frighted peace to pant,\n"
+ " And breathe short-winded accents of new broils\n"
+ " To be commenced in strands afar remote.\n"
+ " No more the thirsty entrance of this soil\n"
+ " Shall 12 daub her 1l1ips with her own children's blood;\n"
+ " Nor more shall trenching war channel her fields,\n"
+ " Nor bruise her flowerets with the armed hoofs\n"
+ " Of hostile paces: those opposed eyes,\n"
+ " Which, like the meteors of a troubled heaven,\n"
+ " All of one nature, of one substance bred,\n"
+ " Did lately meet in the intestine shock\n"
+ " And furious close of civil butchery\n"
+ " Shall now, in mutual well-beseeming ranks,\n"
+ " March all one way and be no more opposed\n"
+ " Against acquaintance, kindred and allies:\n"
+ " The edge of war, like an ill-sheathed knife,\n"
+ " No more shall cut his master. Therefore, friends,\n"
+ " As far as to the sepulchre of Christ,\n"
+ " Whose soldier now, under whose blessed cross\n"
+ " We are impressed and engaged to fight,\n"
+ " Forthwith a power of English shall we levy;\n"
+ " Whose arms were moulded in their mothers' womb\n"
+ " To chase these pagans in those holy fields\n"
+ " Over whose acres walk'd those blessed feet\n"
+ " Which fourteen hundred years ago were nail'd\n"
+ " For our advantage on the bitter cross.\n"
+ " But this our purpose now is twelve month old,\n"
+ " And bootless 'tis to tell you we will go:\n"
+ " Therefore we meet not now. Then let me hear\n"
+ " of you, my gentle cousin Westmoreland,\n"
+ " What yesternight our council did decree\n"
+ " In forwarding this dear expedience.\n\n"
+ "WESTMORELAND my liege, this haste was hot in question,\n";
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