import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?<=\") # A filename is after a double quote char\n"
+ "(?:[^\"\\/]+\\/)+ # the path is one or more words separated with a slash\n"
+ "[^\"\\/]+ # The filename (not the path) can be anything but a double quote char and a slash\n"
+ "[.]\\w+ # The extension cannot have space and have the form of .foobar\n"
+ "(?:\") # A filename end with a double quote char";
final String string = "example 1: soundSet = { name = \"bus_modern\", horn = \"vehicle/truck_modern/horn.wav\" }\n"
+ "example 2: id = \"vehicle/bus/citaro/lod_0_w2.msh\",\n"
+ "example 3: \"vehicle/bus/berkhof_duvedec/berkhof_duvedec_lod_0_w2.msh\", \"vehicle/bus/berkhof_duvedec/berkhof_duvedec_lod_0_w3.msh\", \n"
+ "id = \"vehicle/train/BR 78_Body.grp\"";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE | Pattern.COMMENTS);
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