import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(^\\s+_[A-Za-z]+\\._)";
final String string = "was from an authentic copy, and a careful comparison of the text with\n"
+ "the earlier one shows that in the meantime the play \"underwent revision,\n"
+ "received some slight augmentation, and in some few places must have been\n"
+ "entirely rewritten.\" A marked instance of this rewriting--the only one\n"
+ "of considerable length--is in ii. 6. 6-37, where the first quarto reads\n"
+ "thus (spelling and pointing being modernized):--\n\n"
+ " _Jul._ Romeo.\n\n"
+ " _Rom._ My Juliet, welcome. As do waking eyes\n"
+ " Closed in Night's mists attend the frolick Day,\n"
+ " So Romeo hath expected Juliet,\n"
+ " And thou art come.\n\n"
+ " _Jul._ I am, if I be Day,\n"
+ " Come to my Sun: shine forth and make me fair.\n\n"
+ " _Rom._ All beauteous fairness dwelleth in thine eyes.\n\n"
+ " _Jul._ Romeo, from thine all brightness doth arise.\n\n"
+ " _Fri._ Come, wantons, come, the stealing hours do pass,\n"
+ " Defer embracements till some fitter time.\n"
+ " Part for a while, you shall not be alone\n"
+ " Till holy Church have joined ye both in one.\n\n"
+ " _Rom._ Lead, holy Father, all delay seems long.\n\n"
+ " _Jul._ Make haste, make haste, this lingering doth us wrong.\n\n"
+ "For convenient comparison I quote the later text here:--\n\n"
+ " _Juliet._ Good even to my ghostly confessor.\n\n"
+ " _Friar Laurence._ Romeo shall thank thee, daughter, for us both.\n\n"
+ " _Juliet._ As much to him, else is his thanks too much.\n\n"
+ " _Romeo._ Ah, Juliet, if the measure of thy joy\n"
+ " Be heap'd like mine and that thy skill be more\n"
+ " To blazon it, then sweeten with thy breath\n"
+ " This neighbour air, and let rich music's tongue\n"
+ " Unfold the imagin'd happiness that both\n"
+ " Receive in either by this dear encounter.\n\n"
+ " _Juliet._ Conceit, more rich in matter than in words,\n"
+ " Brags of his substance, not of ornament.\n"
+ " They are but beggars that can count their worth;\n"
+ " But my true love is grown to such excess\n"
+ " I cannot sum up half my sum of wealth.\n\n"
+ " _Friar Laurence._ Come, come with me, and we will make short work;\n"
+ " For, by your leaves, you shall not stay alone\n"
+ " Till holy church incorporate two in one.\n\n"
+ "The \"omission, mutilation, or botching\" by which some German editors\n"
+ "would explain all differences between the earlier and later texts will\n"
+ "not suffice to account for such divergence as this. \"The two dialogues\n"
+ "do not differ merely in expressiveness and effect; they embody different\n"
+ "conceptions of the characters;\" and yet we cannot doubt that both were\n"
+ "written by Shakespeare.\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