[英]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.