0

こんにちは、私はこの 2 つのタグの間のリンクを取得しようとしています。たとえば、ここにテキストがあります。リストに保存されます。パターンとマッチャーを使用してこれらのテキストを取得するにはどうすればよいですか

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ソース間のリンクと内部のリンクを見つけようとしています

4

1 に答える 1

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]
于 2012-07-07T15:56:02.347 に答える