[英]Java Regex pattern.matcher Understanding
考虑以下代码
import java.util.regex.*;
public static void main(String[] args) {
String str = "Suneetha N.=9876543210, Pratish Patil=9898989898";
Pattern pattern = Pattern.compile("(\\w+)(\\s\\w+)(=)(\\d{10})");
Matcher matcher = pattern.matcher(str);
String newStr = matcher.replaceAll("$4:$2,$1");
System.out.println(newStr);
}
上面代码的输出是
Suneetha N.=9876543210, 9898989898: Patil,Pratish
我无法理解matcher.replaceAll("$4:$3,$1")
用途,以及它如何工作并产生此输出。 请提供您的建议。
你有
"(\\w+)(\\s\\w+)(=)(\\d{10})"
正则表达式,并想象它将为已建立的字符串创建GROUPS。 在这个例子中是
Pratish Patil=9898989898
这是正则表达式的分组:
(\\w+) => Pratish $1
(\\s\\w+) => Patil $2
(=) => = $3
(\\d{10}) => 9898989898 $4
然后,您说要用此正则表达式通过此新顺序替换replaceAll
,其中$ number定义了一个组。 所以你更换
Pratish Patil=9898989898
按照新的分组顺序:
和,
。
$4:$2,$1 -> 9898989898:Patil,Pratish.
您没有使用$ 3组,其中=
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.