import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^\\s*(#*)\\s*(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s+([a-zA-Z0-9\\.\\- ]+)([^#]*#?\\w*\\s*)$";
final String string = "# Copyright (c) 1993-2009 Microsoft Corp.\n"
+ "#\n"
+ "# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.\n"
+ "#\n"
+ "# This file contains the mappings of IP addresses to host names. Each\n"
+ "# entry should be kept on an individual line. The IP address should\n"
+ "# be placed in the first column followed by the corresponding host name.\n"
+ "# The IP address and the host name should be separated by at least one\n"
+ "# space.\n"
+ "#\n"
+ "# Additionally, comments (such as these) may be inserted on individual\n"
+ "# lines or following the machine name denoted by a '#' symbol.\n"
+ "#\n"
+ "# For example:\n"
+ "#\n"
+ "# 102.54.94.97 rhino.acme.com # source server\n"
+ "# 38.25.63.10 x.acme.com # x client host\n\n"
+ "# localhost name resolution is handled within DNS itself.\n"
+ "# 127.0.0.1 localhost\n"
+ "# ::1 localhost\n\n"
+ "127.0.0.1 jw smartsite.jw\n"
+ "127.0.0.1 dev.filepresso.com dev.filepresso.com.pl dev.filepresso.pl dev.filefly.pl\n"
+ "#### 89.31.66.248 sp.biatelbit.pl\n\n"
+ "192.168.72.51 subversion.biatel.com.pl\n"
+ " \n"
+ "# 127.0.0.1 bip.smartsite.bit-sa.pl\n"
+ " # 127.0.0.1 bip.augustow.wrotapodlasia.pl\n"
+ "127.0.0.1 rpowp.smartsite.bit-sa.pl\n"
+ "127.0.0.1 cms.smartsite.bit-sa.pl\n"
+ "127.0.0.1 cms-test.smartsite.bit-sa.pl\n\n"
+ "############################################################ \n"
+ "# \n"
+ "# UMWP \n"
+ "# \n"
+ "############################################################ \n\n"
+ "############################################################ \n"
+ "# ST - test - UMWP \n"
+ "############################################################ \n"
+ "#10.200.14.70 ST-sapp1 \n"
+ "#10.200.14.70 tv.smartsite.bit-sa.pl wp.smartsite.bit-sa.pl cms.smartsite.bit-sa.pl test.smartsite.bit-sa.pl bip.smartsite.bit-sa.pl si.smartsite.bit-sa.pl sspw.wrotapodlasia.pl \n"
+ "#10.200.14.70 radny.smartsite.bit-sa.pl stats.smartsite.bit-sa.pl test9.smartsite.bit-sa.pl ";
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