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

How to replace one alphabet by same alphabet and new line character in Java regex

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

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

这样就变成了-

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

如果我找到 <[A-z] 并用 \n< 替换,那么第一个字符就消失了。如何保留它?

P.S 我现在正在尝试在 Notepad++ 中玩,但最终它会进入 Java 代码。

你可以试试下面的方法,

(?<=>)(?=<)

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

DEMO

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"));

此正则表达式也适用于记事本++。

想拍什么就拍什么。

(<[^>]*>)

替换为 \n。查看演示。

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

编辑:

如果您不想在末尾添加额外的换行符,请尝试

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

替换为 \n。查看演示。

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