我需要帮助。我正在编写一个方法,如果1954
在字符串images/deal/129277/1954-bonus.jpg
中,该方法将返回true。我可以使用string.contains,但它并不总是准确的。相反,如果1954年在正确的位置,我希望它返回true。在sourceKey下面是images/deal/129277/1954-bonus.jpg
,在oldImageId下是1954
。
下面的代码不起作用。
private boolean keyMatches(String sourceKey, String oldImageId){
Pattern pattern = Pattern.compile("(.*?)/(\\d+)/(\\d+)-(.*)");
Matcher matcher = pattern.matcher(sourceKey);
return oldImageId.equals(matcher.group(3));
}
最佳答案
好像您想要这样的东西,
String s = "images/deal/129277/1954-bonus.jpg";
String oldImageId = "1954";
Matcher m = Pattern.compile("(.*?)/(\\d+)/(\\d+)-(.*)").matcher(s);
if(m.find())
{
System.out.println(oldImageId.matches(m.group(3)));
}
输出:
true