正则表达式 - 旁边没有相同数字的数字

时间:2017-12-21 07:00:40

标签: regex

我正在寻找适合每个数字的正则表达式,它是由0,1,2制成的,并且旁边没有相同的数字 - 02021适合,0122不适合。 如何写?

2 个答案:

答案 0 :(得分:5)

您可以从0到2之间的数字开始。捕获组中的内容并检查以下内容是否为捕获的值。在非捕获组中捕获并重复该操作。

^(?:([0-2])(?!\1))*$

<强>解释

  • 从字符串^
  • 的开头
  • 非捕获组(?:
  • 捕获组(
  • 字符范围从0到2 [0-2]
  • 关闭捕获组)
  • 否定前瞻(?!
  • 断言以下内容不等于第一个捕获组
  • 关闭否定前瞻)
  • 关闭非捕获组)
  • 重复非捕获组零次或多次*
  • 字符串$
  • 的结尾

答案 1 :(得分:1)

您可以使用以下正则表达式:

^(([012])(?!\2))+$

在此测试:https://regex101.com/r/6vevDl/1