簡體   English   中英

java模式匹配問題

[英]java Pattern Matching issue

我在編寫適當的正則表達式以匹配URL時遇到問題。

String input = "AAAhttp://www.gmail.comBBBBabc@gmail.com"    
String regex = "www.*.com"  // To match www.gmail.com URL    
Pattern p = Pattern.compile(regex)
Matcher m = p.matcher(input)
while(m.find()){

}    

在這里,我要刪除網址www.gmail.com 但是,它匹配到字符串的末尾以匹配也以gmail.com結尾的電子郵件地址。 有人可以幫助我獲取正確的正則表達式以僅匹配URL嗎?

.*進行貪心匹配。 您必須添加? *之后進行不願意的匹配。

"www\\..*?\\.com"

您的代碼是

    String s = "AAAhttp://www.gmail.comBBBBabc@gmail.com";
    Pattern p = Pattern.compile("www\\..*?\\.com");
    Matcher m = p.matcher(s);
    while (m.find()) {
      System.out.println(m.group(0));
    }

愛迪生

String regex = "www\\..*?\\.com"

通配符“。”的非貪婪重復 從字面上逃脫點

否定的字符類比.*?更快.*?

使用此正則表達式:

www\.[^.]+\.com

[^.]+表示不是點的任何字符。

在Java中,我們需要轉義一些字符:

// for instance
Pattern regex = Pattern.compile("www\\.[^.]+\\.com");
// etc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM