gpt4 book ai didi

Java Regex pattern.matcher 理解

转载 作者:行者123 更新时间:2023-11-30 08:00:49 25 4
gpt4 key购买 nike

考虑以下代码

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

regex 并想象它将为已创建的字符串创建一个 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 组,其中 =

关于Java Regex pattern.matcher 理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38223411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com