您可以尝试使用后退参考
^(.)\1{1,}$
Run Code Online (Sandbox Code Playgroud)
模式说明:
^ the beginning of the string
( group and capture to \1:
. any character except \n
) end of \1
\1{1,} what was matched by capture \1 (at least 1 times)
$ the end of the string
Run Code Online (Sandbox Code Playgroud)
反向引用与先前由捕获组匹配的文本匹配.反向引用\1(反斜杠一)引用第一个捕获组.\1匹配第一个捕获组匹配的完全相同的文本.
在Java中你可以尝试
"aaaaaaaa".matches("(.)\\1+") // true
Run Code Online (Sandbox Code Playgroud)
没有必要^,$因为String.matches()查找整个字符串匹配.
这实际上取决于你的语言,但一般来说这会匹配一个具有相同字符的一行.
^(.)\1+$
Run Code Online (Sandbox Code Playgroud)
^ 断言开头的位置(.)\1+ 匹配与第一个捕获组Quantifier最近匹配的相同文本:+在一次和无限次之间,尽可能多次,根据需要返回[贪婪]$ 在一条线的末尾断言位置