RegEx - взять все числовые символы после текстового символа - PullRequest
5 голосов
/ 23 марта 2010

Учитывая строку в формате: XXX999999v99 (где X - любой буквенный символ, а v - любой числовой символ, а v - буквенный символ v), как я могу получить регулярное выражение, соответствующее числовым символам после v? До сих пор у меня есть 'v \ d \ d', который включает в себя v, но в идеале мне нужна только числовая часть.

Кроме того, кто-нибудь знает инструмент, в котором вы можете указать строку для сопоставления и сгенерировать регулярное выражение? Изменение существующего регулярного выражения - это одно, но начинать с нуля мне больно!

Редактировать: перечитывая этот вопрос, я понимаю, что он читается как домашнее задание! Однако я могу заверить вас, что это не так, строки, которые я пытаюсь сопоставить, представляют версии продуктов, добавленные в коды продуктов. Текущий код использует все виды выражений подстроки для извлечения части версии.

Ответы [ 3 ]

4 голосов
/ 23 марта 2010

Вы можете попробовать:

v(\d+)$
  • v: соответствует литералу v
  • \d: одна цифра
  • \d+: одна или несколько цифр.
  • (): группировка, которая также помнит согласованная часть, которую можно использовать позже
  • $: привязка конца строки
2 голосов
/ 23 марта 2010

Вам нужно использовать группу захвата:

Regex.Match("XXX999999v99",@"v(\d+)").Groups[1].Value
1 голос
/ 23 марта 2010

Есть несколько отличных бесплатных инструментов для тестирования регулярных выражений.

Попробуйте: regex powertoy

или: RegExr

Есть также некоторые платные программы, такие как regex buddy

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