import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String regex
= "(?s)(my_folder/(?:[^/\\n]+/)*[^/\\n]+\\.xml)::(?!.*\\1)"; String string
= " my_folder/foo.xml::someextracontent\n" + " my_folder/foo.xml::someextracontent\n"
+ " another_folder/foo.xml::someextracontent\n"
+ " my_folder/bar.xml::someextracontent\n"
+ " my_folder/bar.xml::someextracontent\n"
+ " my_folder/hello.xml::someextracontent\n\n\n"
+ "my_folder/test1/test2/bar.xml::someextracontent\n"
+ "my_folder/test1/test2/bar.xml::someextracontent";
Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.
out.
println(matcher.
group(1)); }
}
}
aW1wb3J0IGphdmEudXRpbC5yZWdleC5NYXRjaGVyOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CmltcG9ydCBqYXZhLnV0aWwuKjsKaW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgamF2YS5pby4qOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTdHJpbmcgcmVnZXggPSAiKD9zKShteV9mb2xkZXIvKD86W14vXFxuXSsvKSpbXi9cXG5dK1xcLnhtbCk6Oig/IS4qXFwxKSI7CgkJU3RyaW5nIHN0cmluZyA9ICIgbXlfZm9sZGVyL2Zvby54bWw6OnNvbWVleHRyYWNvbnRlbnRcbiIKCQkJICsgIiBteV9mb2xkZXIvZm9vLnhtbDo6c29tZWV4dHJhY29udGVudFxuIgoJCQkgKyAiIGFub3RoZXJfZm9sZGVyL2Zvby54bWw6OnNvbWVleHRyYWNvbnRlbnRcbiIKCQkJICsgIiBteV9mb2xkZXIvYmFyLnhtbDo6c29tZWV4dHJhY29udGVudFxuIgoJCQkgKyAiIG15X2ZvbGRlci9iYXIueG1sOjpzb21lZXh0cmFjb250ZW50XG4iCgkJCSArICIgbXlfZm9sZGVyL2hlbGxvLnhtbDo6c29tZWV4dHJhY29udGVudFxuXG5cbiIKCQkJICsgIm15X2ZvbGRlci90ZXN0MS90ZXN0Mi9iYXIueG1sOjpzb21lZXh0cmFjb250ZW50XG4iCgkJCSArICJteV9mb2xkZXIvdGVzdDEvdGVzdDIvYmFyLnhtbDo6c29tZWV4dHJhY29udGVudCI7CgkJCgkJUGF0dGVybiBwYXR0ZXJuID0gUGF0dGVybi5jb21waWxlKHJlZ2V4LCBQYXR0ZXJuLk1VTFRJTElORSk7CgkJTWF0Y2hlciBtYXRjaGVyID0gcGF0dGVybi5tYXRjaGVyKHN0cmluZyk7CgkJCgkJd2hpbGUgKG1hdGNoZXIuZmluZCgpKSB7CgkgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihtYXRjaGVyLmdyb3VwKDEpKTsKCQl9Cgl9Cn0=