如何用 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
字符替换匹配的边界。
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
。查看演示。
您好,我想替换一个字符串,例如
<foo/><boo/><woo/>
这样就变成了-
<foo/>
<boo/>
<woo/>
如果我找到 <[A-z]
并用 \n<
替换,那么第一个字符就消失了。如何保留它?
P.S 我现在正在尝试在 Notepad++ 中玩,但最终它会进入 Java 代码。
你可以试试下面的方法,
(?<=>)(?=<)
使用上面的正则表达式,然后用 \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"));
此正则表达式也适用于记事本++。
想拍什么就拍什么。
(<[^>]*>)
替换为 \n
。查看演示。
https://www.regex101.com/r/rK5lU1/14
编辑:
如果您不想在末尾添加额外的换行符,请尝试
(<[^>]*>)(?!$)
替换为 \n
。查看演示。