使用通配符查找重复模式匹配的正则表达式

时间:2014-02-20 06:00:37

标签: regex

我正在尝试编写一个reg表达式来查找长度为5的字符串中重复3-5次的11个不同的no /字符的匹配。

例如:string-“1112a”。这里111连续重复三次,所以这将返回true。

  • no / char来自1-9,a,b。
  • 通配符:char b是一个通配符意味着如果b带有任何char / no,它将表现得像那样。

例如:string-“11b2a”;所以这里b将表现为没有1.这意味着我们有3个1。这将返回true。

更多例子:

  • “22299”应该返回true。
  • “222”连续3次重复。
  • 重复可以达到最大5.如“22222”。

“22300”应该返回false。 “22a13”应该返回false。 “44b44”应该返回true。这里b是通配符,如4。

有人请帮帮我。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

使用捕获组([0-9ab])和反向引用\1(此匹配与先前组1匹配的任何内容)。

Javascript示例:

/([0-9ab])(\1|b){2,4}/.test('1112a')  // true
/([0-9ab])(\1|b){2,4}/.test('11b2a')  // true
/([0-9ab])(\1|b){2,4}/.test('22299')  // true
/([0-9ab])(\1|b){2,4}/.test('22300')  // false
/([0-9ab])(\1|b){2,4}/.test('22a13')  // false
/([0-9ab])(\1|b){2,4}/.test('44b44')  // true