正则表达式匹配7个数字,其中第4个是后继者或前任者

时间:2018-03-08 09:21:59

标签: regex

我需要一个检查以下内容的正则表达式:

具有7位数字的数字具有以下格式:xxxyxxx 其中y不等于0并且是后继或前任(x + 1或x-1)

示例:

4443444 --> match
4445444 --> match
4442444 --> doesn't match

1 个答案:

答案 0 :(得分:0)

我不认为使用RegExp有一种聪明的方法。

你可以简单地强迫你的方式:

1{3}21{3}|2{3}[13]2{3}|3{3}[24]3{3}|4{3}[35]4{3}|5{3}[46]5{3}|6{3}[57]6{3}|7{3}[68]7{3}|8{3}[79]8{3}|9{3}89{3}

请参阅the demo

1{3}21{3}       `1` 3 times + `2` + `1` 3 times
|               OR
2{3}[13]2{3}    `2` 3 times + (`1` OR `3`) + `2` 3 times
|               ...
3{3}[24]3{3}
|
4{3}[35]4{3}
|
5{3}[46]5{3}
|
6{3}[57]6{3}
|
7{3}[68]7{3}
|
8{3}[79]8{3}
|
9{3}89{3}