6

Java 文字列の href タグ間のデータを抽出しようとしています。これは、すべてと部分文字列を置換し、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);

関連する提案をいただければ幸いです。正規表現であるべきなので、データのみを抽出します。

4

2 に答える 2

3

これはあなたのニーズの例です。完全一致にはアンカー タグ付きの文字列が含まれ、検索されたコンテンツは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));
}
于 2013-03-05T14:46:01.940 に答える
1

代わりに HTML/XML パーサーを使用してください。あなたの人生はずっと楽になるでしょう。

通常、HTML は非常に一貫性がなく、希望どおりになるかどうか確信が持てません。

これに関して実際に有名な答えがあります。RegEx では、XHTML 自己完結型タグを除くオープン タグに一致します。

HTML/XML パーサーを使用することを選択した場合は、Java のベスト XML パーサーを参照してください:)

于 2013-03-05T14:46:31.807 に答える