使正则表达式查找并替换“#”并避免替换“&#”

7ivaypg9  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(377)

是否可以通过正则表达式在下面的字符串中找到#: <p>userName:</p><p dir="ltr">&#39;It&#39;s so cl#an ## # the coast.&#39;</p> 我要选择并替换 # 使用其他单词,但避免替换&#。
最后一个字符串可以是这样的(用#替换#): <p>userName:</p><p dir="ltr">&#39;It&#39;s so cl_an __ _ the coast.&#39;</p>

vpfxa7rd

vpfxa7rd1#

您可以按以下模式替换:

(?<!&)#

这将匹配任何不带符号的哈希符号。下面是一个示例代码:

val input = "<p>userName:</p><p dir=\"ltr\">&#39;It&#39;s so cl#an ## # the coast.&#39;</p>"
val output = input.replace("(?<!&)#".toRegex(), "_")
println(output)

这张照片是:

<p>userName:</p><p dir="ltr">&#39;It&#39;s so cl_an __ _ the coast.&#39;</p>

旁注:通常尽量避免使用正则表达式操纵html/xml或其他可能的嵌套内容。不过,考虑到没有嵌套的标记,它恰好与当前输入一起工作。

相关问题