Регулярное выражение: число или 2 числа, разделенные» -«

#asp.net #regex

Вопрос:

Может кто-нибудь помочь мне с регулярным выражением? Я бы вставил свой сюда, но Stackoverflow, похоже, не позволяет этого, поэтому вот скриншот:

введите описание изображения здесь

Он должен соответствовать любому числу или любым 2 числам, разделенным знаком» -«, а также только первому совпадению.

Комментарии:

1. Это должно быть ^d (?:.d )?(?:s*-s*d (?:.d )?)?$

2. На самом деле атрибут RegularExpressionAttribute допускает только полное совпадение строк, вам не нужны якоря, и вам не нужно беспокоиться о совпадении только первого совпадения.

3. Спасибо, это работает

Ответ №1:

Вы можете использовать

 ^d (?:.d )?(?:s*-s*d (?:.d )?)?$
 

Смотрите демонстрацию регулярных выражений.

Подробные сведения:

  • ^ — начало строки
  • d (?:.d )? — одна или несколько цифр и необязательная последовательность из a . и одной или нескольких цифр
  • (?:s*-s*d (?:.d )?)? — необязательная последовательность
    • s*-s* — дефис, заключенный в ноль или более пробелов
    • d (?:.d )? — одна или несколько цифр и необязательная последовательность из a . и одной или нескольких цифр
  • $ — конец веревки.