2

以下の入力から「リトルリーグワールドシリーズ」を抽出したいと思います。

<li><span class="Spicy new"><a href="http://www.google.com/trends/hottrends#a=20120825-Little%2BLeague%2BWorld%2BSeries">Little League World Series</a></span></li>

前後の文字列を「」に置き換えるか、文字列を抽出することができます。これを行うための適切な正規表現を取得できません。line.replace(" <li><span class=\"[\\w]+\"", "");「リトルリーグワールドシリーズ」の前にパーツを交換するために使用していますが、正しく一致していません。

助けていただければ幸いです。

4

4 に答える 4

1

これを使用して、行の前にあるものを削除できます。

line.replaceFirst("<li><span class=\"[^\"]+\"><a href=\"[^\"]+\">", "");

正規表現で試してみてください

編集: String.replace正規表現を受け入れませんString.replaceFirst

于 2012-08-30T18:45:43.597 に答える
1

If this is not a well formed trusted html source, use an html parser like JSOUP. Regex cannot protect you against many malformed html issues.

于 2012-08-30T18:49:47.360 に答える
0

これは合格のようです:

    @Test
    public void patternTest() {
        final String text = "<li><span class=\"Spicy new\"><a href=\"http://www.google.com/trends/hottrends#a=20120825-Little%2BLeague%2BWorld%2BSeries\">Little League World Series</a></span></li>";
        final Pattern pattern = Pattern.compile("^.*>([^<>]+)<.*$");
        final Matcher matcher = pattern.matcher(text);
        assertTrue(matcher.matches());
        assertEquals("Little League World Series", matcher.group(1));
    }

">"と"<"の間にある最後の空でないテキストを抽出します

于 2012-08-30T19:03:43.380 に答える
0

使用する

<li><span class="[^"]+"><a href="[^"]+">[^>]+</a></span></li> 

行全体を取得します。その後、交換してください

<li><span class="[^"]+"><a href="[^"]+"> 

「」に置き換えて置き換えます

</a></span></li> 

と ""

以下のリンクを試してください。必要なJava文字列も表示されます。 http://www.regexplanet.com/advanced/java/index.html

java関数の使用については、次のリンクを確認してください: http://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#replaceFirst(java.lang.String)

于 2012-08-30T18:48:33.607 に答える