Что такое шаблон Regex для 3 последовательных цифр, увеличивающихся или уменьшающихся - PullRequest
5 голосов
/ 02 февраля 2010

Мне нужен шаблон регулярного выражения, чтобы соответствовать последовательности из 3 последовательных цифр в строке, которые последовательно увеличиваются или уменьшаются.

Например:

Эти строки должны совпадать (xxx123xxx, 789xxxxxx, xxxxxx987, xxxxxx432)

Эти строки не должны совпадать (xxxxxx454, 333xxxxxx, xxx429xxx)

Ответы [ 3 ]

8 голосов
/ 02 февраля 2010

Нет другого способа, кроме перечисления их:

(012|123|234|345|456|567|678|789|987|876|765|654|543|432|321|210)
3 голосов
/ 02 февраля 2010

Это можно сделать просто, но только с определением действительных наборов последовательных цифр

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

2 голосов
/ 02 февраля 2010

Это будет очень сложное регулярное выражение. В проекте, где мне приходилось делать что-то очень похожее, я заканчивал тем, что сопоставлял группы цифр и затем передавал фактическую проверку цифр делегату (я делал это в коде C ++; сделал что-то подобное в другом проекте в Java в так же).

Если это вообще возможно, я бы порекомендовал сделать это здесь. Регулярное выражение, которое могло бы сделать это само по себе, было бы очень трудно читать или поддерживать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...