当前位置: 首页 > 面试题库 >

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

龚志文
2023-03-14
问题内容

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

例如

“ aaaaaaa” =真
“ aaabbbb” =假
“ $$$$$$$” =真


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


问题答案:

您可以尝试使用反向参考

^(.)\1{1,}$

演示

模式说明:

  ^                        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

后向引用与捕获组先前匹配的文本匹配。\1反引用(反斜杠一个)引用第一个捕获组。\1匹配与第一个捕获组匹配的完全相同的文本。

在Java中,您可以尝试

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

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



 类似资料:
  • 问题内容: 有没有办法使用正则表达式来匹配重复的字符集?例如: 我知道那是错的。但是有什么可以匹配这种效果的吗? 更新: 您可以使用嵌套捕获组吗?像什么? 问题答案: 将要重复的正则表达式放在括号中。例如,如果您要重复5次: 或者,如果您想要任意数量的重复(0或更多): 或一个或多个重复: 编辑 以回应更新 正则表达式中的括号有两个作用:它们将正则表达式中的一系列项目组合在一起,以便您可以将运算符

  • 关于正则表达式有很多类似的问题,但我仍然对以下情况感到困惑:

  • 问题内容: 我有一个字符串。如何检查字符串是正则表达式还是包含正则表达式还是正常字符串? 问题答案: 您唯一可以做的可靠检查是,如果语法正确的是正则表达式: 但是请注意,即使对于像和这样的字符串,也会导致这种情况,因为从技术上讲,它们是有效的正则表达式。 唯一会返回的情况是不是有效正则表达式的字符串,例如或或。

  • 问题内容: 如何检查整个字符串是否可以与正则表达式匹配?在Java中是方法 问题答案: 您需要结合使用锚(字符串锚的开始)和字符串锚的结束,并通过以下选项进行操作: 或者,您可以传递一个选项数组,其中仅将模式锚定在字符串的开头,您可以省略,但仍然需要锚定在字符串末尾: 观看在线Swift演示 另外,在此处使用with 是一种替代方法: 根据ICU v3,使用正则表达式样式的比较,左手表达式等于右手

  • 我正在比较以字符串形式交付的版本编号。 我需要检测某个版本是否为beta版本,我想检查该版本的最后一部分是否包含beta、build或b,我正在尝试使用regex执行此操作。 到目前为止,它可以工作,但一旦版本部分有一个空间,它就不行了。 也许有人有更好的主意? 迄今为止我的正则表达式: 字符串示例: v1。23 Beta125-- v1。25.458 beta 129-- 示例代码:

  • 我想使用正则表达式屏蔽字符串的子字符串。 字符串输入=