Что нового

Регулярное выражение на вхождение числа в определенный диапазон

alroy

Новичок
Сообщения
9
Репутация
0
Просьба помогите составить регулярное выражение на вхождение числа в определенный диапазон например 111500-111725 если это возможно!!
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Можно, но довольно извращенным способом - числа интерпретируются как строки и задаётся допустимый вид такой 'строки'.
Такой пример приведён в справке по StringRegExp, в описании директивы (DEFINE). Для определения корректности IP-адреса составляется шаблон допустимого значения байта.
Код:
2[0-4]\d | 25[0-5] | 1\d\d | [1-9]?\d)

Подходит ли для Вашей задачи такой громоздкий путь?
И, сами понимаете, диапазон чисел в такой редакции является фиксированным и не может быть параметром.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Для этого не нужно рег. выражение...

Код:
MsgBox(0, @ScriptName, _NumInRange(111600, 111500, 111725))

Func _NumInRange($iNum, $iFirst, $iLast)
	Return ($iNum >= $iFirst And $iNum <= $iLast)
EndFunc
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
ТС, скорее всего, хочет выудить из текста те строки, в которых некое число находится в определённом диапазоне.
Но что-то он молчит...
 
Автор
A

alroy

Новичок
Сообщения
9
Репутация
0
Спасибо за ответы но вот в том и дело что хотелось бы именно регулярным выражением :smile: а за советы спасибо буду смотреть!!
 
A

Alofa

Гость
alroy сказал(а):
... в том и дело что хотелось бы именно регулярным выражением ...
Из этого я делаю вывод, что C2H5OH прав, и вы имеете дело со строками.
Код:
Local $sString = 'Это про100 стока 00111600 с цифрами 111725 + 1117250 диапазона'
Local $sText, $iNums, $iSize, $iFirst = 111500, $iLast = 111725

$iNums = StringRegExp($sString, '\d+', 3)

If Not @error Then
	$iSize = UBound($iNums)
	$sText = 'Всего чисел в строке найдено: ' & $iSize & ' ' & @LF
	For $i = 0 To $iSize - 1
		$iM = ($iNums[$i] >= $iFirst And $iNums[$i] <= $iLast) ? 'Входит' : 'НЕ входит'
		$sText &= @LF & $i + 1 & '-ое число: "' & $iNums[$i] & '" --> ' & $iM & ' в диапазон'
	Next
Else
	$sText = 'В строке нет чисел для сопоставления!'
EndIf

MsgBox(64, 'Отчет:', $sText)
 

disthyounossa1979bit

Новичок
Сообщения
2
Репутация
0
РЕШЕНО Регулярное выражение на вхождение числа в определенный диапазон

Посмотрите здесь:

регулярное выражение для домена PHP
PHP Регулярное выражение для preg_split
PHP Регулярное выражение для ссылки
PHP Записать регулярное выражение для адреса и ссылки
PHP Регулярное выражение для замены
 
Верх