Javascript 重复唯一字符的JS正则表达式

Javascript 重复唯一字符的JS正则表达式,javascript,regex,repeat,Javascript,Regex,Repeat,我试图确定一个字符串是否恰好包含一个给定的不同字符,并至少重复一次。例如,“bbbbb”应该匹配,但“ccMMcc”不应该匹配,因为它分别包含两个不同的字母c和m。假设正则表达式是实现这一点的最简单的方法,但遗憾的是我不擅长正则表达式,我需要什么来匹配我的字符串?您可以使用反向引用: ^(.)\1+$ “tttt”.match(/^(.)\1*$/)返回[“tttt”,“t”]但“test”。match(/^(.)\1*$/)返回null正则表达式是: \b(\w)\1*\b 即: \b:

我试图确定一个字符串是否恰好包含一个给定的不同字符,并至少重复一次。例如,“bbbbb”应该匹配,但“ccMMcc”不应该匹配,因为它分别包含两个不同的字母c和m。假设正则表达式是实现这一点的最简单的方法,但遗憾的是我不擅长正则表达式,我需要什么来匹配我的字符串?

您可以使用反向引用:

^(.)\1+$
“tttt”.match(/^(.)\1*$/)
返回
[“tttt”,“t”]
“test”。match(/^(.)\1*$/)
返回
null

正则表达式是:

\b(\w)\1*\b
即:

  • \b:词界
  • (\w):第一个字符,组
  • \1*:第一个字符的任意重复次数

相关而非确切的欺骗:“至少重复一次”是什么意思?这是否意味着这些字符中必须至少有两个,例如“bb”?或者单个字符是否也应该匹配,例如“b”?此外,所讨论的“字符”是否包括换行符?对换行符不感兴趣,而是更标准的键盘字符;制表符/缩进和回车符/换行符并不是我的目标:)星号
*
表示出现0次或更多次,因此此正则表达式将匹配单个字符,例如
“a”
它应该是星号,否则将不匹配单个字符。是否“至少重复一次”表示字符串必须包含至少两个字符?“至少重复一次”表示字符串应包含字符不止一次,因此您需要将星号替换为加号(
+
),这将匹配
-a-
甚至
a