大家好我正在尝试检索这两个标签之间的链接,例如文本,然后将它存储在列表中,如何使用模式和匹配器检索这些文本
public void getlinks() {
Pattern Start = Pattern.compile(this.PatternStart); //<Link>
Pattern End = Pattern.compile(this.PatternEnd); //</Link>
Matcher mStart = Start.matcher(this.Source); // matches Start
Matcher mEnd = End.matcher(this.Source); // matches end
????????????
}
试图找到html源代码之间和内部的链接,仅使用
作为示例答案 0 :(得分:2)
一般来说,你喜欢这样:
public static List<String> getLinks(String text) {
Matcher matcher = Pattern.compile("<tagstart>(.*?)<tagend>").matcher(text);
List<String> linkList = new ArrayList<String>();
while (matcher.find()) {
linkList.add(matcher.group(1));
}
return linkList;
}
其中<tagstart>
和<tagend>
是您的开始和结束标记。 matcher.group(1)
为您提供了代码之间的所有内容,其中matcher.group()
或matcher.group(0)
也会为您提供代码。
请注意,如果您的文字包含多个标记对,则必须使用(.*?)
,否则这将匹配第一个<tagstart>
和最后一个<tagend>
,并返回介于两者之间的所有内容。 />
一个示例用法是:
System.out.println(getLinks("<tagstart>beer<tagend><tagstart>juice<tagend>"));
打印
[beer, juice]