2 回答
TA贡献1880条经验 获得超4个赞
matches() 方法检查完整的字符串匹配,而不是使用 find() 方法来检查子序列匹配。最后,您可以使用 group() 方法获取匹配的子序列字符串。
public static void main(String[] args) {
Pattern pattern = Pattern.compile("(?<=pp_).*(?=')");
String input = "['newPage', 'pp_vii', -1])";
Matcher m = pattern.matcher(input);
boolean a = m.find();
if(a){
String out = m.group();
System.out.println("Match : " + out);
}
TA贡献2036条经验 获得超8个赞
您的正则表达式很好。仅当完整的字符串与模式 (docs) 匹配时,该方法才返回 true。您应该改用。这将找到与模式(文档)匹配的下一个子序列。Matcher.matches()Matcher.find()
Pattern pattern = Pattern.compile("(?<=pp_).*(?=')");
String input = "['newPage', 'pp_vii', -1])";
Matcher m = pattern.matcher(input);
boolean stringMatches = m.matches(); // false
boolean isThereMatch = m.find(); // true
System.out.println(isThereMatch + " " + stringMatches);
System.out.println(m.group());
打印:
true false
vii
添加回答
举报
