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());
打?。?/p>
true false
vii
添加回答
舉報