确定字符串是否仅由单个重复字符组成的正则表达式模式是什么?
例如
“ 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-- 示例代码:
我想使用正则表达式屏蔽字符串的子字符串。 字符串输入=