Создание диапазона чисел из регулярного дескриптора - PullRequest
2 голосов
/ 27 августа 2010

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

Например, учитывая регулярное выражение "80055510 [34] X", я хотел бы создать числа от 8005551030 до 8005551049. "X" можеткак бы то ни было, это только то, к чему привыкли конечные пользователи (в приложениях Cisco Call Manager).

Учитывая "80055512 [12] [12]", он создает:

8005551211 8005551212 80055512218005551212

Дано: "800555120 [0-2,9]" будет сгенерировано:

8005551200 8005551201 8005551202 8005551209

Возможно ли это с помощью регулярных выражений или мне просто нужноразбирать вещи самостоятельно и делать это?

Я бы написал это на Java, если это что-то изменит.Спасибо.

Ответы [ 2 ]

1 голос
/ 27 августа 2010

Конечно, вы можете использовать регулярные выражения для разбора входных строк *, используя, скажем, "\\[(.*?)\\]", чтобы найти вхождения, например, "[0-2,9]".

Кроме этого, я сомневаюсь, что классы регулярных выражений (Pattern, Matcher) в java будут вам здесь полезны.Если вы не сделаете какую-то сумасшедшую грубую силу и не дадите java-regexp «отфильтровать», какие числа допустимы.


* При условии, что вы не планируете поддерживать странные выражения, такие как[[4-8]-[3-9]].

0 голосов
/ 27 августа 2010

Регулярные выражения должны использоваться для сопоставления с шаблоном, а не для анализа. Я полагаю, что в вашем случае вам пришлось бы придумать свой собственный механизм для анализа регулярного выражения.

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