在Java中的正则表达式匹配之后删除String的一部分

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

我正在尝试制作一个电视节目组织计划,我想以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());

如果有人可以告诉我为什么这行不通并建议适当的方法,那将是很好的。谢谢。

回答:

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

您的代码可能完全相同:

if(m.find())

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

以上是 在Java中的正则表达式匹配之后删除String的一部分 的全部内容, 来源链接: utcz.com/qa/417956.html

回到顶部