Как написать регулярное выражение, которое возвращает только «I», затем «J» или «V», а затем от 1 до 3 чисел? - PullRequest
1 голос
/ 21 ноября 2008

Требуется выражение, которое возвращает только вещи с «I», за которым следует либо «J», либо «V» (без кавычек), а затем от 1 до 3 цифр.

I J ###
Я V ###
Я J ##
Я V ##
Я J #
Я v #

Ответы [ 4 ]

4 голосов
/ 21 ноября 2008

Ваше описание не соответствует вашему примеру, и есть некоторые идиоматические вещи, о которых вам нужно позаботиться (нечувствительность к регистру, зависит от механизма регулярных выражений)

I [JV]\d{1,3}

Это будет соответствовать

  • I J1
  • Я J12
  • I J123
  • I V1
  • I V12
  • I V123

но не будет соответствовать

  • I 1
  • I 12
  • I 123
4 голосов
/ 21 ноября 2008

Зависит от вашего вкуса

I(J|V)[0-9]{1,3}

Вам также нужен пробел после "I"?

I (J|V)[0-9]{1,3}
1 голос
/ 21 ноября 2008

Протестировано с RegExBuddy:

I [JV] \ d {1,3} \ s

Отредактировано:

Очень похоже на Винко Врсаловича, но с его, если у вас есть I J12345678, он захватит "I J123" в вашем выражении. Добавление \ s требует специального символа в конце, такого как пробел, перевод строки и т.д ...

0 голосов
/ 22 ноября 2008

Я думаю, что остальные пропустили v# спецификацию.

I[JVv]\d{1,3}

Конечно, возможно, строчная буква v была опечаткой.

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