java 中正值表达式的问题

zhuailhw123 zhuailhw123 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
package HelloWorld;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class HelloWorld {

public static void main(String[] args) {

Pattern r=Pattern.compile("(\\u0041\\u0042)*");
Matcher m=r.matcher("ABCdABABDADAB");
while(m.find())
{
System.out.println(m.group());

}
}
}

输出是
AB
换行
换行
ABAB
换行
换行
换行
AB

(\\u0041\\u0042)* 表示的是AB出现零次或多次,
1 为什么AB只出现1次的也输出了?
2 还有这里有换行输出,是因为符合AB出现零次的子字符串吧 但为什么是5个换行啊?分别对应哪5个子字符串?
3 为什么不是先输出符合零次的子字符串然后再输出符合多次的子字符串,而是交叉输出?

谢谢了
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
zhuailhw123
Java SE 62,620 成员 307,251 内容