簡體   English   中英

Java正則表達式在href標記之間提取數據

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

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