I want to remove a part of a string following what matches my regex.
I am trying to make a TV show organization program and I want to cut off anything in the name following the season and episode marker in the form SXXEXX where X is a digit.
I grasped the regex model fairly easily to create "[Ss]\d\d[Ee]\d\d" which should match properly.
I want to use the Matcher method end() to get the last index in the string of the match but it does not seem to be working as I think it should.
Pattern p = Pattern.compile("[Ss]\\d\\d[Ee]\\d\\d");
Matcher m = p.matcher(name);
if(m.matches())
return name.substring(0, m.end());
If someone could tell me why this doesn't work and suggest a proper way to do it, that would be great. Thanks.
matches
matches the entire string, tryfind()
You could capture the name as well:
Will capture and print:
matches()
tries to match the whole string again the pattern. If you want to find your pattern within a string, usefind()
,find()
will search for the next match in the string.Your code could be quite the same:
This should work
In java (I'm rusty) this will be
Hope this helps