import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^([A-z]+)(?: *= *)(\\d+|[A-z]+)$";
final String string = "Expression validator\n"
+ "^((?:[A-z]+)|((-|\\+)?\\d+))( +(\\++|-+) +((?:-?\\d+)|(?:[A-z]+)))*$\n\n"
+ "Assignment validator\n"
+ "^([A-z]+)(?: *= *)(\\d+|[A-z]+)$\n\n"
+ "c= a\n"
+ "8\n"
+ "8 + 4\n"
+ "-2 + 4 - 5 + 6\n\n"
+ "9 +++ - 10 -- 8\n"
+ "9 --- + 10\n"
+ "9 --- -10\n"
+ "9 +++ -10 -- 8\n"
+ "3 --- 5\n"
+ "14 - 12\n"
+ "-3 2\n"
+ "name = 44\n"
+ "a = 5\n"
+ "capName = 6 + 4\n"
+ "capName = 6\n"
+ "n = 3\n"
+ "m=4\n"
+ "a = 5\n"
+ "b = a\n"
+ "v= 7\n"
+ "n =9\n"
+ "c= a\n"
+ "A variable can have a name consisting of more than one letter.\n\n"
+ "count = 10\n"
+ "To print the value of a variable you should just type its name.\n\n"
+ "N = 5\n"
+ "N\n"
+ "5\n"
+ "It should be possible to set a new value to an existing variable.\n\n"
+ "a = 1\n"
+ "a = 2\n"
+ "a = 3\n"
+ "a\n"
+ "3\n"
+ "If an identifier or value of a variable is invalid, the program must print a message like the one below.\n\n"
+ "a1 = 8\n"
+ "Invalid identifier\n"
+ "n = a2a\n"
+ "Invalid assignment\n"
+ "a = 7 = 8\n"
+ "Invalid assignment\n\n\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