Регулярное выражение для сопоставления одной цифры, которой предшествует символ

Я пытаюсь сопоставить одну цифру URL-адреса:

www.example.com/api/v1.2/Resource

Я хочу сопоставить «1», но ничего остального. Я зашел так далеко:

(?i)\/v([0-9]{0,3})\.

но это соответствует /v1.

URL всегда будет иметь один и тот же состав: api/v[x].[x]/[ResourceName]

Итак, правило: Соответствует первой цифре, которой предшествует /v, за которой следует .

Я использую Perl Regex.

Ваше значение находится в переменной $1.

Wiktor Stribiżew 11.04.2018 13:29

Вы должны сопоставить / v и. чтобы убедиться, что вы получили правильную строку. Но тогда вы можете получить доступ к подгруппам вашего матча. Подгруппа определяется круглыми скобками, поэтому в вашем случае первая группа содержит то, что вы хотите. Доступ к i с $1 или \1 в зависимости от того, где вы используете это регулярное выражение. У вас может быть более точный ответ, если вы объясните больше, что вы хотите делать с этой подстрокой (заменить, использовать где-то еще), и с какой технологией вы запускаете это регулярное выражение (функция замены текстового редактора или какой-то php-код? .. .)

Basile Perrenoud 11.04.2018 13:33

Я узнал, как получить доступ к правильным значениям, но ценю ваш комментарий. Никогда не знал, что в регулярном выражении есть переменные. Я разбираю Regex в Delphi, и мне нужно прочитать номер версии из URL-адреса, чтобы вызвать правильного производителя контента для конечной точки.

Matt Baech 11.04.2018 13:40
0
3
16
0

Другие вопросы по теме