import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?<name>([!@#$?]*)([A-Za-z0-9]+))+([!@#$?]+)=(?<length>\\d+)<<.*$";
final String string = "Examples for valid input:\n"
+ "!Ma$$ka!lu!@=9<<ghtucjdhs\n"
+ "!@Eve?#rest!#=7<<vbnfhfg\n"
+ "Examples of invalid input:\n"
+ "anna@fg<<jhsd@bx!=4\n"
+ "#n...s!n-<<tyuhgf4\n"
+ "Nan$ga!Parbat=8<<gh2tn\n\n"
+ "!@Ma?na?sl!u@=7<<tv58ycb4845\n"
+ "E!ve?rest=.6<<tuvz26\n"
+ "!K@2.,##$=4<<tvnd\n"
+ "!Shiha@pan@gma##9<<tgfgegu67\n"
+ "!###Anna@pur@na##=16<<tv5dekdz8x11ddkc\n"
+ "Ka?!#nch@@en@ju##nga@=3<<thfbghvn\n"
+ "=9Cho?@#Oyu<<thvb7ydht\n"
+ "Nan??ga#Par!ba!t?=16<<twm03q2rx5hpmyr6\n"
+ "Dhau??la#gi@ri?!#=3<<bvnfhrtiuy\n"
+ "Last note\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