什么是3个连续数字增加或减少的正则表达式模式

时间:2010-02-02 15:23:22

标签: regex

我需要一个正则表达式模式来匹配一个连续增加或减少的字符串中连续3个数字的序列。

例如:

这些字符串应匹配(xxx123xxx,789xxxxxx,xxxxxx987,xxxxxx432)

这些字符串不匹配(xxxxxx454,333xxxxxx,xxx429xxx)

3 个答案:

答案 0 :(得分:8)

除了列出它们之外别无他法:

(012|123|234|345|456|567|678|789|987|876|765|654|543|432|321|210)

答案 1 :(得分:3)

这可以简单地完成,但仅限于定义连续数字的有效集合

(?: 012 | 210 | 123 | 321 | 234 | 432 | 345 | 543 | 456 | 654 | 567 | 765 | 678 | 876 | 789 | 987)

答案 2 :(得分:2)

这将是一个非常复杂的正则表达式。在我必须做一些非常类似的事情的项目中,我最终匹配数字组,然后将数字的实际验证传递给委托(我在C ++代码中执行此操作;在Java中的另一个项目上做了类似的事情)同样的方式)。

如果可能的话,这就是我建议在这里做的事情。可以单独执行此操作的正则表达式将非常难以阅读或维护。