检索两个标记之间的代码

时间:2012-07-07 15:45:44

标签: java netbeans

大家好我正在尝试检索这两个标签之间的链接,例如文本,然后将它存储在列表中,如何使用模式和匹配器检索这些文本

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源代码之间和内部的链接,仅使用

作为示例

1 个答案:

答案 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]