import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Ideone
{
{
String ticket1
= "TICKET/A/ITSUPPORT/05MAR2020//"; String ticket2
= "TICKET /B/ADMIN/06MAR2020."; String ticket3
= "TICKET/C/GENERAL/07MAR2020";
//https://w...content-available-to-author-only...s.info/brackets.html
String regex
= "(?<=^TICKET\\s{0,2}/).*?(?=(?://|\\.)?$)"; Pattern pat = Pattern.compile(regex);
Matcher mat = pat.matcher(ticket1);
if (mat.find()) {
String myticket
= ticket1.
substring(mat.
start(), mat.
end()); System.
out.
println(myticket
+ ", Expect 'A/ITSUPPORT/05MAR2020'"); }
mat = pat.matcher(ticket2);
if (mat.find()) {
String myticket
= ticket2.
substring(mat.
start(), mat.
end()); System.
out.
println(myticket
+", Expect 'B/ADMIN/06MAR2020'"); }
mat = pat.matcher(ticket3);
if (mat.find()) {
String myticket
= ticket3.
substring(mat.
start(), mat.
end()); System.
out.
println(myticket
+", Expect 'C/GENERAL/07MAR2020'"); }
regex = "(//|\\.)";
pat = Pattern.compile(regex);
mat = pat.matcher(ticket1);
if (mat.find()) {
String myticket
= ticket1.
substring(mat.
start(), mat.
end()); System.
out.
println(myticket
+", "+mat.
start() + ", " + mat.
end() + ", " + mat.
groupCount()); }
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwoKCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkgICAgU3RyaW5nIHRpY2tldDEgPSAiVElDS0VUL0EvSVRTVVBQT1JULzA1TUFSMjAyMC8vIjsKCQkgICAgU3RyaW5nIHRpY2tldDIgPSAiVElDS0VUIC9CL0FETUlOLzA2TUFSMjAyMC4iOwoJCSAgICBTdHJpbmcgdGlja2V0MyA9ICJUSUNLRVQvQy9HRU5FUkFMLzA3TUFSMjAyMCI7CgkJCgkJICAgIC8vaHR0cHM6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5zLmluZm8vYnJhY2tldHMuaHRtbAoJCQoJCSAgICBTdHJpbmcgcmVnZXggPSAiKD88PV5USUNLRVRcXHN7MCwyfS8pLio/KD89KD86Ly98XFwuKT8kKSI7CgkJICAgIFBhdHRlcm4gcGF0ID0gUGF0dGVybi5jb21waWxlKHJlZ2V4KTsKCQkgICAgTWF0Y2hlciBtYXQgPSBwYXQubWF0Y2hlcih0aWNrZXQxKTsKCQkKCQkgICAgaWYgKG1hdC5maW5kKCkpIHsKCQkgICAgICAgIFN0cmluZyBteXRpY2tldCA9IHRpY2tldDEuc3Vic3RyaW5nKG1hdC5zdGFydCgpLCBtYXQuZW5kKCkpOwoJCSAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG15dGlja2V0KyAiLCBFeHBlY3QgJ0EvSVRTVVBQT1JULzA1TUFSMjAyMCciKTsKCQkgICAgfQoJCSAgICBtYXQgPSBwYXQubWF0Y2hlcih0aWNrZXQyKTsKCQkgICAgaWYgKG1hdC5maW5kKCkpIHsKCQkgICAgICAgIFN0cmluZyBteXRpY2tldCA9IHRpY2tldDIuc3Vic3RyaW5nKG1hdC5zdGFydCgpLCBtYXQuZW5kKCkpOwoJCSAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG15dGlja2V0KyIsIEV4cGVjdCAnQi9BRE1JTi8wNk1BUjIwMjAnIik7CgkJICAgIH0KCQkKCQkgICAgbWF0ID0gcGF0Lm1hdGNoZXIodGlja2V0Myk7CgkJICAgIGlmIChtYXQuZmluZCgpKSB7CgkJICAgICAgICBTdHJpbmcgbXl0aWNrZXQgPSB0aWNrZXQzLnN1YnN0cmluZyhtYXQuc3RhcnQoKSwgbWF0LmVuZCgpKTsKCQkgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihteXRpY2tldCsiLCBFeHBlY3QgJ0MvR0VORVJBTC8wN01BUjIwMjAnIik7CgkJICAgIH0KCQkgICAgcmVnZXggPSAiKC8vfFxcLikiOwoJCSAgICBwYXQgPSBQYXR0ZXJuLmNvbXBpbGUocmVnZXgpOwoJCSAgICBtYXQgPSBwYXQubWF0Y2hlcih0aWNrZXQxKTsKCQkgICAgaWYgKG1hdC5maW5kKCkpIHsKCQkgICAgICAgIFN0cmluZyBteXRpY2tldCA9IHRpY2tldDEuc3Vic3RyaW5nKG1hdC5zdGFydCgpLCBtYXQuZW5kKCkpOwoJCSAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG15dGlja2V0KyIsICIrbWF0LnN0YXJ0KCkgKyAiLCAiICsgbWF0LmVuZCgpICsgIiwgIiArIG1hdC5ncm91cENvdW50KCkpOwoJCSAgICB9Cgl9Cn0=