1

まず第一に、助けてくれてありがとう、私はこの問題に一週間立ち往生しています。私はグーグルで検索しましたが、Javaの応答はなく、Pythonと私が知らない他の言語でしか応答しません。

私はJavaを使用して、文字列のペアを検索し、これら2つの単語の中間にあるテキストを取得するアプリケーションを開発しています。例:

<A name=1></a>Some text with break lines<A name=300></a>

主な問題は、これら2つの境界線の間のテキストを。まで取得する必要があるということです。このテキストを取得して、StringBufferに追加します。

これは私がしました:

Pattern regex   = Pattern.compile("<A name=1><\\/a>((.|\\s)+?)<A name=300><\\/a>");
Matcher matcher = regex.matcher(htmlFileReading);

if (matcher.find()) {
    System.out.println("Finded");
    System.out.println(matcher.groupCount());
}

それは動作しますが、私がそれよりも大きいがそれほど大きくないものを試してみると、スタックオーバーフローエラーが返されます。

これらの2つのマークの間のテキストを取得するにはどうすればよいですか?どうもありがとう、そして私の悪い英語をお詫びします。

4

2 に答える 2

1

正しいかどうかは定かではありませんが、「軽い」再帰を行うには、次のようなものを試してください。

// .* before and after if needed
Pattern regex   = Pattern.compile(".*<A name=1><\\/a>(.*?)<A name=300><\\/a>.*");
System.output.println(regex.matcher(myStringToSearchInside).replaceAll("$1"));

newLine インクルード用に編集

于 2012-07-23T14:23:15.803 に答える
0

XML からテキストを抽出することが目的の場合は、XSLT を使用することをお勧めします。

于 2012-07-23T14:14:56.940 に答える