如何在Java正则表达式中用相同的字母表和换行符替换一个字母表



嗨,我想替换一个字符串,例如

<foo/><boo/><woo/>

以这样一种方式,使其成为-

<foo/> <boo/> <woo/>

如果我找到<[A-z]并替换为n<,那么第一个字符就不见了。如何保持这一点?

p.S我现在正试图在Notepad++中玩,但最终它将进入Java代码。

只需捕获您想要的内容。

(<[^>]*>)

替换为$1n。请参阅演示。

https://www.regex101.com/r/rK5lU1/14

编辑:

如果你不想在末尾增加换行符,请尝试

(<[^>]*>)(?!$)

替换为$1n。请参阅演示。

https://www.regex101.com/r/rK5lU1/15

您可以尝试以下方法,

(?<=>)(?=<)

使用上面的正则表达式,然后将匹配的边界替换为n字符。

演示

String s = "<foo/><boo/><woo/>";
System.out.println(s.replaceAll("(?<=>)(?=<)", "n"));

输出:

<foo/>
<boo/>
<woo/>

String s = "<foo/><boo/><woo/>";
System.out.println(s.replaceAll("(?!^)(<[A-Za-z])", "n$1"));

这个正则表达式也可以在记事本++上使用。

相关内容

最新更新