import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?<class>^(?<fully_qualified_class_name>(?<deliniator>(?<!\\\\)\\\\(?!\\\\)(?=(?P>fully_qualified_class_name))){0,1}[A-z_][\\w]*)(?=::(?P>method)|$)|^(?<namespace>^(?P>fully_qualified_class_name)*)(?P>deliniator)(?P>fully_qualified_class_name)(?=::(?P>method)|$))(?<scope_resolution_operator>::(?=(?P>method)(?!$)))?(?<method>(?<=::)(?<operation>(?<mutator>[sS]et(?=[A-Z0-1_]|$))|(?<accessor>[gG]et(?=[A-Z0-1_]|$))|(?<condition>[iI]s(?=[A-Z0-1_]|$)|[hH]as(?=[A-Z0-1_]|$)))?_?(?<target>(?<=\\w)\\w*)|[A-z_]\\w*)?$";
final String string = "/Class and Namespace Capture\n"
+ "Nam_e\n"
+ "\\_Nam_e\n"
+ "Nam_e\\Spac_e\n\n"
+ "/Class Method and Namespace Capture\n"
+ "/With Operation and Target\n"
+ "Nam_e::set_Singular\n"
+ "\\Nam_e\\Spac_e::isSingular\n"
+ "\\Nam_e\\Spac_e::\n\n"
+ "/Class Method and Deep Namespace Capture\n"
+ "/Without Operation and Target\n"
+ "Nam_e\\Spac_e\\Accessible\\Caller\\Value::setsingular\n"
+ "\\Nam_e\\Spac_e\\Accessible\\Caller\\Value::singular\n\n"
+ "/Class Method and Deep Namespace Capture\n"
+ "/With Mutator Operation and Target\n"
+ "Nam_e\\Spac_e\\Accessible\\Caller\\Value::setSingular\n\n"
+ "/Class Method and Deep Namespace Capture\n"
+ "/With Accessor Operation and Target\n"
+ "Nam_e\\Spac_e\\Accessible\\Caller\\Value::get_singular\n\n"
+ "/Class Method and Deep Namespace Capture\n"
+ "/With Conditional Operation and Target\n"
+ "\\Nam_e\\Spac_e\\Accessible\\Caller\\Value::isSingular\n"
+ "Nam_e\\Spac_e\\Accessible\\Caller\\Value::has_Singular";
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