import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = " (?si)\n"
+ " \n"
+ " ^ \n"
+ " \n"
+ " \\s* \n"
+ " UPDATE \\s+ `mytable` \\s+ \n"
+ " SET \\s+ `keyname` \\s* = \\s* 'keyvalue'\n\n"
+ " (?# one or more such key = value )\n"
+ " (?>\n"
+ " \\s* , \\s* \n\n"
+ " (?# field name )\n"
+ " ` [A-Z_]+ ` \n\n"
+ " (?# equals )\n"
+ " \\s* = \\s* \n\n"
+ " (?# value )\n"
+ " (?>\n"
+ " (?# an integer, possibly negative )\n"
+ " -? [0-9]+ \n"
+ " | \n"
+ " (?# or, a string )\n"
+ " '\n"
+ " [^'\\\\]* \n"
+ " (?:\n"
+ " (?: \\\\ . | '' )\n"
+ " [^'\\\\]* \n"
+ " )*\n"
+ " '\n"
+ " \n"
+ " # '\n"
+ " # (?: [^'\\\\] | '' | \\\\ . )*\n"
+ " # ' \n"
+ " \n"
+ " | \n"
+ " (?# or, literal NULL )\n"
+ " NULL \n"
+ " )\n"
+ " )+\n"
+ " \n"
+ " \\s+ WHERE \\s+ `keyname` \\s* = \\s* 'keyvalue'\n"
+ " \n"
+ " $";
final String string = "UPDATE `mytable`\n"
+ "SET `keyname` = 'keyvalue',\n"
+ "`Markup` =\n"
+ "'Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n"
+ "''Quisque vel mattis odio, quis iaculis sem.''\n"
+ "Nulla facilisi.\n"
+ "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\n"
+ "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\\r\\n\n"
+ "\\'Aenean in augue a est vulputate accumsan.\\'\n"
+ "Phasellus nulla diam, laoreet a elit non, mattis finibus magna. Phasellus\n"
+ "faucibus iaculis mi sed pulvinar.\\r\\n\n"
+ "Aliquam non nisl ultricies, aliquam augue vitae, efficitur sapien.\n"
+ "Etiam viverra, magna a laoreet sollicitudin, ipsum erat tincidunt sem, nec\n"
+ "faucibus enim tortor eget massa.Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\n"
+ "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\\r\\n\n"
+ "\\'Aenean in augue a est vulputate accumsan.\\'\n"
+ "Phasellus nulla diam, laoreet a elit non, mattis finibus magna. Phasellus\n"
+ "faucibus iaculis mi sed pulvinar.\\r\\n\n"
+ "Aliquam non nisl ultricies, aliquam augue vitae, efficitur sapien.\n"
+ "Etiam viverra, magna a laoreet sollicitudin, ipsum erat tincidunt sem, nec\n"
+ "faucibus enim tortor eget massa.Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\n"
+ "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\\r\\n\n"
+ "\\'Aenean in augue a est vulputate accumsan.\\'\n"
+ "Phasellus nulla diam, laoreet a elit non, mattis finibus magna. Phasellus\n"
+ "faucibus iaculis mi sed pulvinar.\\r\\n\n"
+ "Aliquam non nisl ultricies, aliquam augue vitae, efficitur sapien.\n"
+ "Etiam viverra, magna a laoreet sollicitudin, ipsum erat tincidunt sem, nec\n"
+ "faucibus enim tortor eget massa.Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\n"
+ "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\\r\\n\n"
+ "\\'Aenean in augue a est vulputate accumsan.\\'\n"
+ "Phasellus nulla diam, laoreet a elit non, mattis finibus magna. Phasellus\n"
+ "faucibus iaculis mi sed pulvinar.\\r\\n\n"
+ "Aliquam non nisl ultricies, aliquam augue vitae, efficitur sapien.\n"
+ "Etiam viverra, magna a laoreet sollicitudin, ipsum erat tincidunt sem, nec\n"
+ "faucibus enim tortor eget massa.Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\n"
+ "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\\r\\n\n"
+ "\\'Aenean in augue a est vulputate accumsan.\\'\n"
+ "Phasellus nulla diam, laoreet a elit non, mattis finibus magna. Phasellus\n"
+ "faucibus iaculis mi sed pulvinar.\\r\\n\n"
+ "Aliquam non nisl ultricies, aliquam augue vitae, efficitur sapien.\n"
+ "Etiam viverra, magna a laoreet sollicitudin, ipsum erat tincidunt sem, nec\n"
+ "faucibus enim tortor eget massa.Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\n"
+ "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere\n"
+ "cubilia Curae; Fusce ut dui venenatis, maximus lorem eget, ornare ex.\n"
+ "Aenean tempus pulvinar est, id fringilla enim sagittis id. Mauris finibus\n"
+ "cursus commodo.\\r\\n\\r\\n\\r\\n\n"
+ "\\'Aenean in augue a est vulputate accumsan.\\'\n"
+ "Phasellus nulla diam, laoreet a elit non, mattis finibus magna. Phasellus\n"
+ "faucibus iaculis mi sed pulvinar.\\r\\n\n"
+ "Aliquam non nisl ultricies, aliquam augue vitae, efficitur sapien.\n"
+ "Etiam viverra, magna a laoreet sollicitudin, ipsum erat tincidunt sem, nec\n"
+ "faucibus enim tortor eget massa.\n"
+ "Nunc nisi orci, lacinia vitae dictum et, vestibulum sed metus. ',\n"
+ "`From_Date` = NULL,\n"
+ "`To_Date` = NULL,\n"
+ "`Foo` = '',\n"
+ "`Box_Colour` = NULL,\n"
+ "`Modification_Date` = '2016-09-08 12:30:47',\n"
+ "`Modified_User` = 1,\n"
+ "`Modified_IP` = '192.168.1.1'\n"
+ "WHERE `keyname` = 'keyvalue'";
final Pattern pattern = Pattern.compile(regex, Pattern.COMMENTS | Pattern.DOTALL);
final Matcher matcher = pattern.matcher(string);
if (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