我有这样的字符串 <p0=v0 p1=v1 p2=v2 ....>
我想交换 pX
与 vX
有类似 <v0=p0 v1=p1 v2=p2 ....>
的东西使用正则表达式。
我只想要 <>
中的对进行交换。
我写道:
Pattern pattern = Pattern.compile("<(\\w*)=(\\w*)>");
Matcher matcher = pattern.matcher("<p1=v1>");
System.out.println(matcher.replaceAll("$2=$1"));
但它只适用于一对 pX=vX
有人可以解释我如何编写适用于多对的正则表达式吗?
最佳答案
简单,使用组:
String input = "<p0=v0 p1=v1 p2=v2>";
// |group 1
// ||matches "p" followed by one digit
// || |... followed by "="
// || ||group 2
// || |||... followed by "v", followed by one digit
// || ||| |replaces group 2 with group 1,
// || ||| |re-writes "=" in the middle
System.out.println(input.replaceAll("(p[0-9])=(v[0-9])", "$2=$1"));
输出:
<v0=p0 v1=p1 v2=p2>
关于java - 嵌套的正则表达式和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22021129/