0

私はいくつかのHTMLファイルを持っており、それぞれに1つの<h1>タグがあります。そのタグを解析して、そのコンテンツ(本の名前)を取得したいと思います。たとえば、タグは次のようになります。

<H1>bookname</H1>

私はこのコードを使用してそれを取得しようとしています:

Scanner scan = new Scanner(file, "Windows-1255");
String name="";
Pattern p = Pattern.compile("<H1>*</H1>"); //tried adding '(' and ')' around the '*', didn't help
while (scan.hasNext()) {
    name = scan.nextLine();
    Matcher m = p.matcher(name);
    if (m.matches()) {
        name = name.substring(4, name.length() - 6);
        break;
    }
}

それは機能せず、h1タグが一致することはなく、名前がわかりません。これはどのように行われることになっていますか?

おそらく重要なのは、H1タグの内容がヘブライ語のcharset=Windows-1255であるということです。

4

2 に答える 2

2

使ってみてください

Pattern p = Pattern.compile("<H1>.*</H1>");

(余分なことに注意して.ください-あなたのバージョンはちょうど空のタグと一致します)。

于 2012-11-10T11:23:36.193 に答える
2

私はあなたのために働くかもしれない例を見つけました。マッチング手順も簡略化および一般化されているため、見つかったパターンをサブストリング化する必要はありません。

String stringToSearch = "<h1>Yada yada yada yada </h1>";
String name = "";

// the pattern we want to search for
Pattern p = Pattern.compile("<h1>.*</h1>");
Matcher m = p.matcher(stringToSearch);

// if we find a match, get the group 
if (m.find())
{
  // get the matching group
  name = m.group(1);
}
于 2012-11-10T11:24:41.147 に答える