Вопрос по java, string, regex – Удалить часть строки после соответствия регулярному выражению в Java

4

Я хочу удалить часть строки, которая соответствует моему регулярному выражению.

Я пытаюсь составить программу организации телешоу и хочу вырезать что-либо из имени после маркера сезона и эпизода в форме SXXEXX, где X - цифра.

Я довольно легко понял модель регулярных выражений, чтобы создать «[Ss] \ d \ d [Ee] \ d \ d» ». который должен соответствовать должным образом.

Я хочу использовать метод Matcher end (), чтобы получить последний индекс в строке совпадения, но, похоже, он не работает так, как мне кажется.

Pattern p = Pattern.compile("[Ss]\\d\\d[Ee]\\d\\d");
Matcher m = p.matcher(name);

if(m.matches())
    return name.substring(0, m.end());

Если бы кто-то мог сказать мне, почему это не сработало, и предложить правильный способ сделать это, это было бы здорово. Благодарю.

Ваш Ответ

3   ответа
5

matches()Error: User Rate Limit Exceededfind(), find()Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

if(m.find())
    return name.substring(0, m.end());
Error: User Rate Limit Exceeded Ryan Jackman
4

matchesError: User Rate Limit Exceededfind()

Error: User Rate Limit Exceeded

String name = "a movie S01E02 with some stuff";
Pattern p = Pattern.compile("(.*[Ss]\\d\\d[Ee]\\d\\d)");
Matcher m = p.matcher(name);

if (m.find())
    System.out.println(m.group());
else
    System.out.println("No match");

Error: User Rate Limit Exceeded

a movie S01E02

1

Error: User Rate Limit Exceeded

.*[Ss]\d\d[Ee]\d\d

Error: User Rate Limit Exceeded

String ResultString = null;

Pattern regex = Pattern.compile(".*[Ss]\\d\\d[Ee]\\d\\d");
Matcher regexMatcher = regex.matcher("Title S11E11Blah");
if (regexMatcher.find()) {
    ResultString = regexMatcher.group();
} 

Error: User Rate Limit Exceeded

Похожие вопросы