嗨我想替换一个字符串,例如
<foo/><boo/><woo/>
以这样的方式变成 -
<foo/>
<boo/>
<woo/>
如果我找到<[A-z]
并替换为\n<
,那么第一个字符就会消失。如何保留呢?
P.S我现在正在尝试使用Notepad ++,但最后它将进入Java代码。
答案 0 :(得分:2)
只需抓住你想要的东西。
(<[^>]*>)
替换为$1\n
。请参阅演示。
https://www.regex101.com/r/rK5lU1/14
编辑:
如果您不想在最后添加额外的换行符,请尝试
(<[^>]*>)(?!$)
替换为$1\n
。请参阅演示。
答案 1 :(得分:1)
您可以尝试下面的内容,
(?<=>)(?=<)
使用上面的正则表达式,然后用\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"));
这个正则表达式也适用于记事本++。