3

2 つの HTML タグの間の値を取得する式はありますか? また、Spanタグがある場合はそのままにしておく必要があります

input
<table><tr>
<td>abc<td/> <span class="abc">Test</span>
</tr>
</table>

Output

abc <span class"abc"> Test</span>

次の解決策を試しましたが、タグも削除されます

String input="<table><tr><td>abc<td/> <span>Test</span></tr></table>";
        String newValue = input.replaceAll("<[^>]*>", "");
        System.out.println(newValue);

上記コードの出力

abc Test

しかし、出力が必要です

abc <span class"abc"> Test</span>
4

2 に答える 2

2

タグをテストするために、後に続かない(?!...)ことを意味する否定的な先読みを使用できます。Java 構文の例:

<(?!/?span\\b)[^>]*>
于 2013-10-30T13:19:41.053 に答える
1

私はこれがあなたが探していることをすると思います:

str.replaceAll("<(?!\\/?span)[^>]+>", "")

これは a を探し<、それが含まれている/spanかどうかを確認するために先を見spanて、次の前に来る前に>...そしてそのすべてを何も置き換えません。

String str = "<table><tr><td>abc<td/> <span class=\"abc\">Test</span></tr></table>\";";
System.out.println(str.replaceAll("<(?!\\/?span)[^>]+>", ""));
//prints: abc <span class="abc">Test</span>";
于 2013-10-30T13:20:08.920 に答える