正则表达式理解:给一串数字加逗号

package HEX2;
public class RegExTest {

public static void main(String[] args) {
String str = "123456789.987654321";
String str2 = "123456789";
System.out.println(str.replaceAll("(?<=\d)(?=(\d{3})+[.])", ","));
System.out.println(str2.replaceAll("(?<=\d)(?=(\d{1})+$)", ","));
}

}
这两句输出里的正则表达式都怎么理解啊,求正则表达式很会的大神,给个详细的指导,解释下~谢谢了!!!

string : 要被查找替换的原始字符串。System.out.println(str.replaceAll("(?<=\d)(?=(\d{3})+[.])", ","));
str.replaceAll();是string的一个方法
?(占位符)=(\d{3})精确匹配3个前面表达式。

https://regexper.com/ 把你的正则表达式 复制进去。会给你一个图形化的 流程。