正则表达式.*(.)(.*\\1).是什么意思?

请详解!

.*(.)(.*\\1).
第1个 . 代表任意字符,后面的 * 代表 前面的任意字符有0个或多个
第2个 . 也代表任意字符,但它被括号括起来了,括号代表它被捕获了,相当于被复制了,还没被粘贴
第3个 . 也代表任意字符,后面的 * 代表 前面的任意字符有0个或多个
\\第1个\代表转译符,\这个符号不能直接出现在表达式里,必须被\转译符后才能变成一个普通的字符\,也就是说第1个\是用来把第2个\变成一个普通字符\
1就是1,没什么好说的
最后1个 . 也是代表任意字符,它后面没跟着 * ,所以代表只有1个任意字符

顺便说下,最短能被匹配的结果
1\11
1随便换成别的任意字符也行
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-31
包含两个同样字符的字符串追问

怎么看出,包含两个同样字符?

第2个回答  2018-01-30
匹配包含两个同样字符的字符串
.:代表任意一个字符
.*:代表任意一个字符后面有0个或多个字符
(.):选择字符中任意一个字符进行复制 和后面的(.*\\1)结合进行判断是否后面存在一个字符与它相同
(.)(.*\\1):匹配案例 a*a(即首尾相同的abcsa)
(.)(.*\\1).*:匹配案例 a*a*
.*(.)(.*\\1):匹配案例 *a*a
.*(.)(.*\\1).*:匹配案例 *a*a*
相似回答