0

我有几个 HTML 文件,每个文件都有一个<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 回答