亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

重寫要在 Java 中使用的正則表達式

重寫要在 Java 中使用的正則表達式

精慕HU 2022-08-03 15:12:33
我已經編寫了正則表達式來匹配字符串中的內容,例如(?<=pp_).*(?=')pp_['newPage', 'pp_vii', -1]我的正則表達式在在線測試器中工作正常(請參閱在線正則表達式驗證器),但在Java中則不然。我的失敗代碼:Pattern pattern = Pattern.compile("(?<=pp_).*(?=')");String input = "['newPage', 'pp_vii', -1])";Matcher m = pattern.matcher(input);boolean match = m.matches(); // false
查看完整描述

2 回答

?
慕村225694

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);

}


查看完整回答
反對 回復 2022-08-03
?
慕桂英3389331

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


查看完整回答
反對 回復 2022-08-03
  • 2 回答
  • 0 關注
  • 85 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號