2016-07-28 12 views
-3

Может ли кто-нибудь помочь мне с регулярным выражением, которое проверяет, находится ли строка в диапазоне 249-268 и, если возможно, объясните, как она работает с каждым блоком регулярного выражения?Регулярное выражение - Конкретный диапазон

Благодаря

+2

Вы не должны использовать регулярное выражение, чтобы решить эту –

+0

@anubhava - Это не рецепт для создания регулярных выражений для диапазонов числа. Это гипер-простой вид темы. – sln

+0

Используйте '>' и '<' или если в SQL 'между'. Если вы обновили вопрос на языке, мы могли бы показать вам эффективный способ сделать это. – chris85

ответ

1

Чтобы соответствовать всей строке, которую вы могли бы использовать:

^2(49|5[0-9]|6[0-8])$ 

Посмотреть демо: https://regex101.com/r/rJ2lH5/1

(Если вы не хотите, чтобы соответствовать всей строке, вы можете удалить ^ и $.

Теперь регулярное выражение действительно не знает, соответствует ли это «соответствие диапазонов», это просто матче с номерами, о которых мы говорим. В данном конкретном случае, картина:

^   # assert position at start of a line 
2   # matches the character 2 literally 
1st Alternative: 49 
    49  # matches the characters 49 literally 
2nd Alternative: 5[0-9] 
    5  # matches the character 5 literally 
    [0-9] # match a single character in the range between 0 and 9 
3rd Alternative: 6[0-8] 
    6  # matches the character 6 literally 
    [0-8] # match a single character in the range between 0 and 8 
$   # assert position at end of a line 
+0

это сработало для меня, спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^