0

文字列を置き換えるための正規表現を書こうとしています。

文字列の例があります:

I am student.

I <a href="am.html">am</a> student.

<a>「am」をhtmlタグに置き換え、最初の文字列を置き換えた結果として2番目の文字列を取得する正規表現を書きたいと思います。

問題は、タグ内の引用符とテキストの入れ子です。

たとえば、この例で文字列「am」を置き換えようとすると、次のようになります。

I <a href="am.html">am</a> am student.

結果は次のようになります。

I <a href="am.html">am</a> <a href="am.html">am</a> student.

前もって感謝します!

4

3 に答える 3

1

このような単純なケースの場合、単純なルックアラウンドを使用して、一致するものが囲まれ>ていないことを確認できますが、その周り<に単語境界 ( \b)があることを確認できます。

(?<!>)\bam\b(?!<)
于 2012-07-04T00:27:19.373 に答える
0

以下の正規表現はam、空白で囲まれたものにのみ一致します。

str.replaceAll("(?<=\\s)am(?=\\s)","<a href=\"am.html\">am</a>")
于 2012-07-04T00:32:57.057 に答える
-1

既に投稿された正規表現文字列に関連するいくつかの回答を見ることができるので、別の回答を投稿する必要はありません。しかし、この単純なケースについては、String を置き換えるような単純なものはどうでしょうか? それとも、実際の問題はこれよりも複雑なのでしょうか? この場合の私の解決策は次のとおりです。

s.replaceAll(" am ", " <a href=\"am.html\">am</a> ");
于 2012-07-04T00:42:31.123 に答える