【发布时间】:2010-02-02 15:23:22
【问题描述】:
我需要一个正则表达式模式来匹配字符串中连续增加或减少的 3 个连续数字的序列。
例如:
这些字符串应该匹配(xxx123xxx、789xxxxxx、xxxxxx987、xxxxxx432)
这些字符串不应匹配(xxxxxx454、333xxxxxx、xxx429xxx)
【问题讨论】:
-
为什么需要正则表达式? (我认为大多数正则表达式方言都无法做到这一点,Perl 的条件子句可能能够做到)。最好匹配三个连续的数字,然后过滤它们之间的关系。
-
“增加或减少”使正则表达式不适合此任务
-
这是一个每个点都需要“状态”的问题。考虑使用状态机(解析器)来解决这个问题。
标签: regex