我有几个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。
答案 0 :(得分:2)
尝试使用
Pattern p = Pattern.compile("<H1>.*</H1>");
(注意额外的.
- 你的版本只匹配空标签。)
答案 1 :(得分: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);
}