在Java中使用正则表达式匹配后删除部分字符串

Rya*_*man 4 java regex string match

我想删除符合我的正则表达式的字符串的一部分.

我正在尝试制作一个电视节目组织节目,我希望在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());
Run Code Online (Sandbox Code Playgroud)

如果有人能告诉我为什么这不起作用并建议一个正确的方法来做到这一点,那就太好了.谢谢.

ste*_*ema 5

matches()尝试再次匹配整个字符串的模式.如果要在字符串中查找模式,请使用find(),find()将搜索字符串中的下一个匹配项.

你的代码可能完全相同:

if(m.find())
    return name.substring(0, m.end());
Run Code Online (Sandbox Code Playgroud)