Regex: получить идентификаторы из URL - PullRequest
0 голосов
/ 24 февраля 2012

Мокрые ноги в регулярных выражениях, и мне трудно заставить его работать.

У меня есть URL как таковой:

/ 800-Flowers-inc- 4124 / 18 роз - 3123

Где 4124 - идентификатор предприятия, а 3123 - идентификатор продукта.

Сложная часть дляя создаю группы захвата.В настоящее время мое регулярное выражение выглядит следующим образом:

/(\d+)(?=/|$)/g

К сожалению, это только выбирает идентификатор предприятия и не возвращает идентификатор продукта.

Любая помощь очень ценится, и если выприведу регулярное выражение, я бы с удовольствием дал небольшое объяснение

спасибо!

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

С вашим регулярным выражением все в порядке, за исключением того, что вы использовали / в качестве разделителя регулярных выражений, вам нужно экранировать его в выражении:

/(\d+)(?=\/|$)/g

Или вы можете просто использовать другой разделитель (например, @):

@(\d+)(?=/|$)@g

В зависимости от языка, который вы используете, он, вероятно, вернет результаты в каком-то массиве, или может быть метод типа findAll вместо простого find.

1 голос
/ 24 февраля 2012

математический кофе правильный:

 var data = '/800-Flowers-inc-4124/18-roses-3123';
        var myregexp = /(\d+)(?=\/|$)/g;
        var match = myregexp.exec(data);
        var result = "Matches:\n";
        while (match != null) {
            result += "match:" + match[0] + ',\n';
            match = myregexp.exec(data);
        }
        alert(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...