在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