1
我想從html頁面獲取地址。我有一個正則表達式,從中找出狀態,城市和電話號碼。無盡的循環matcher.find()
String linearray[] = newdoc.split("\n");
int count = 0;
System.out.println(linearray.length);
while(count<linearray.length)
{
System.out.println(count);
Pattern pattern = Pattern.compile("(.*?)(\\d{1,4}(\\s*\\w*)*)(\\s*)(CA|AZ|NY)(\\s*)(\\(?[1-9]\\d{2}\\)?\\s*\\d{3}\\d{4})?(.*?)");
Matcher matcher = pattern.matcher(linearray[count].trim());
while (matcher.find()) {
String state = matcher.group(5);
String city = matcher.group(2);
String phone = matcher.group(7);
System.out.println("state "+state+" city "+city+" phone "+phone+" ");
}
count++;
}
當我嘗試運行此代碼時,它會進入無限循環。 任何人都可以幫助我解決這個問題嗎?
編輯:
當linearray[count]=="Bombay Garden Newark SanMateo SantaClara © 2011 Bombay Garden All Rights Reserved"
,我的代碼卡就行了while(matcher.find())
。任何想法爲什麼它卡在那裏?當我跳過那一行(通過使用繼續),代碼終止就好了!
你確定無限循環不在你的代碼的另一部分?我複製粘貼你的代碼,它運行良好(並正確終止)對我來說。 –
是的,它在代碼的這一部分,因爲我試圖在第二個while循環結束之後打印一些東西,並且它在此之前被卡住並且不打印任何東西。 – Nemin
你試過調試過嗎? – Adarsh