[英]Java regex extract data between a href tags
我試圖在Java字符串中的href標記之間提取數據。 我可以通過替換all和substring以及使用indexOf等來實現這一點。
我想知道如何使用正則表達式獲取數據。
所以基本上我試圖提取數據並存儲在字符串或列表中。
String data ="12345";
String sampleStr ="";
for(int i=0; i<10; i++) {
data+=i;
sampleStr += "<a href=\"javascript:yyy_getDetail(\'"+data+"\')\">"+data+"</a>"+", ";
}
System.out.println(sampleStr);
String temp = sampleStr.substring(sampleStr.indexOf("\">")+2);
任何有關的建議將不勝感激。 什么應該是正則表達式,所以我只提取數據。
以下是您需求的示例。 請注意,完整匹配將包含帶有錨標記的字符串,並且您搜索的內容位於group 1
。
String data ="12345";
String sampleStr ="";
for(int i=0; i<10; i++)
{
data+=i;
sampleStr += "<a href=\"javascript:yyy_getDetail(\'"+data+"\')\">"+data+"</a>"+", ";
}
Pattern pattern = Pattern.compile("<a[^>]*>(.*?)</a>");
Matcher matcher = pattern.matcher(sampleStr );
while (matcher.find())
{
System.out.println("Result "+ matcher.group(1));
}
請改用HTML / XML解析器。 你的生活會輕松得多。
HTML通常非常不一致,你不能確定它會以你想要的方式結束。
實際上有一個着名的答案,在RegEx匹配開放標簽,除了XHTML自包含標簽
如果您選擇使用HTML / XML解析器,您應該查看適用於Java的Best XML解析器:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.