[英]Java regex string replace
我试图写正则表达式来替换字符串。
有字符串示例:
I am student.
I <a href="am.html">am</a> student.
我想编写正则表达式,将其用<a>
html标记替换“ am”,并获得第二个字符串作为替换第一个字符串的结果。
问题是嵌套在引号和标记内的文本。
例如,如果在此示例中尝试替换字符串“ am”:
I <a href="am.html">am</a> am student.
结果应为:
I <a href="am.html">am</a> <a href="am.html">am</a> student.
提前致谢!
如果是这样的简单情况,则可以使用简单的环顾四周方法来确保所匹配的事物没有被>
和<
包围,但是它周围有单词边界( \\b
):
(?<!>)\bam\b(?!<)
下面的正则表达式匹配的只有am
的空白包围。
str.replaceAll("(?<=\\s)am(?=\\s)","<a href=\"am.html\">am</a>")
我可以看到已经发布了与正则表达式字符串相关的一些答案,因此无需发布其他正则表达式字符串。 但是对于这种简单的情况,像替换String这样简单的事情呢? 还是真正的问题比这更复杂? 对于这种情况,我的解决方案是:
s.replaceAll(" am ", " <a href=\"am.html\">am</a> ");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.