为什么Java中的正则表达式这样也是true

目标是abc123abc才是正确,为什么abc123cba也是正确的


        System.out.println("abc123cba".matches("(.+).+\\1")); //为什么这个也是true
(.+).+\1 可以匹配一个字符串中包含两个相同的子字符串,而这两个子字符串之间还有其他字符。

因为开头的a和结尾的a是相同的,中间夹杂着bc123cb,所以当然可以匹配

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7460588
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【Java多线程实战设计】用三个线程按顺序循环打印abc三个字母,比如abcabcabc
  • 除此之外, 这篇博客: Java面试题——多线程问题及答案中的 用三个线程按顺序循环打印abc三个字母,比如abcabcabc。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    public static void main(String[] args) {
    	final String str=”abc”;
    	ExecutorService executorService= Executors.newFixedThreadPool(3);
    	executorService.execute(new Runnable() {
    	@Override
    	public void run() {
    	System.out.println(1+str);
    	}
    	});executorService.execute(new Runnable() {
    	@Override
    	public void run() {
    	System.out.println(2+str);
    	}
    	});executorService.execute(new Runnable() {
    	@Override
    	public void run() {
    	System.out.println(2+str);
    	}
    	});
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^