import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?!\\s*$)\\s*(?!\\s)([^#\\n\\[=]+?)\\s*?(?>#.*?$|(?>=\\s*$|=\\s*?(?:#?|(\".*?\"|[^\\s].*?)\\s*?)(?:\\s*#.*?$)*?$)?$)";
final String string = "[mysqld]\n"
+ "skip-grant-tables # k\n"
+ "bind-address=127.0.0.1\n"
+ " port = 3307 # test \n"
+ "basedir=C:\\Program Files (x86)\\MySQL\\ \n"
+ "datadir=C:\\Program Files (x86)\\MySQL\\data\\\n\n"
+ "default-storage-engine=INNODB \n\n"
+ "sql-mode= \" STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,test NO_ENGINE_SUBSTITUTION\" #test\n\n"
+ "max_connections=1000\n\n"
+ "tmp_table_size=1G\n"
+ "max_heap_table_size=1G\n"
+ "join_buffer_size=1M \n"
+ "query_cache_size =50M\n"
+ "query_cache_limit=50M\n"
+ "max_allowed_packet = 104857600\n"
+ "port =\n\n"
+ " = fh\n"
+ "thread_cache_size=8\n\n"
+ "#*** MyISAM Specific options\n\n"
+ "myisam_max_sort_file_size=100G\n"
+ "myisam_sort_buffer_size=35M\n"
+ "key_buffer_size=25M\n"
+ "read_buffer_size=64K\n"
+ "read_rnd_buffer_size=256K\n"
+ "sort_buffer_size=256K\n\n"
+ "#*** INNODB Specific options ***\n\n"
+ "innodb_flush_log_at_trx_commit=0\n"
+ "innodb_log_buffer_size=50M\n"
+ "innodb_buffer_pool_size=1000M\n"
+ "innodb_log_file_size=300M\n"
+ "innodb_thread_concurrency=8\n"
+ "innodb_flush_method=normal\n"
+ "innodb_autoinc_lock_mode=0 \n\n\n"
+ "test=0\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
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