1

私はJavaプログラムを持っており、現在、HTMLドキュメントで見つかった用語を置き換えるために正規表現を使用しています。これは正常に機能します。

Pattern p = Pattern.compile(links);
Matcher m = p.matcher(text);
RegexText = m.replaceAll("ReplacementString");

ただし、部分的にリッチテキストタグでフォーマットされている場合、単語は一致しません。例えば。スティング

<b>tes</b>ting

この場合、「tes」は太字であるため、「testing」という単語は一致しません。

このようなタグで壊れた単語を置き換える方法はありますか?また、単語のリッチテキスト形式を失わないことが重要です。そのため、タグを正しい位置に挿入せずに削除することはできません。

4

1 に答える 1

3

残念ながら、正規表現だけでは、この程度まで HTML を確実に一致させることはできません。これは、HTML が正規表現を使用して解析可能な通常の言語ではなく、文脈自由言語であるためです。具体的な制限は、正規表現が開始 HTML タグを終了タグに関連付けることができないことです。これは、フォーマットをそのまま維持しながら一致を実行するために行う必要があります。

代わりに HTML パーサーの使用を検討してください。Java には多くのオプションが用意されています。

于 2012-12-15T00:55:16.383 に答える