用于确定字符串是否为单个重复字符的正则表达式

Regex to determine if string is a single repeating character

确定字符串是否仅由单个重复字符组成的正则表达式模式是什么?

例如

"aaaaaaa" = true
"aaabbbb" = false
"$$$$$$$" = true

This 问题检查字符串是否仅包含重复字符(例如 "aabb"),但是我需要确定它是否是 单个 重复字符。

你可以试试back reference

^(.){1,}$

DEMO

图案说明:

  ^                        the beginning of the string
  (                        group and capture to :
    .                        any character except \n
  )                        end of 
  {1,}                   what was matched by capture  (at least 1 times)
  $                        the end of the string

反向引用与捕获组先前匹配的文本相同。反向引用 </code>(反斜杠一个)引用第一个捕获组。 <code> 匹配与第一个捕获组匹配的完全相同的文本。


在Java你可以试试

"aaaaaaaa".matches("(.)\1+") // true

不需要 ^$ 因为 String.matches() 寻找整个字符串匹配。

这确实取决于您的语言,但通常这会匹配具有相同字符的一行。

^(.)+$

Regex101 Example

  • ^ 在行首声明位置
  • 第一个捕获组(.)
  • + 匹配与第一个捕获组最近匹配的相同文本 量词:+ 一次到无限次之间,越多越好,按需回馈[贪心]
  • $ 断言行尾的位置