parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Вхождение числа в строку

Spearance 27.09.2006 10:48

Крохотный метод:
#######################################
# Проверяет входит ли число в строку: 3, 2, 1,10-15,18,21,43-54
#####
@check_number[str;number][numbers]
$result(0)
^if(def $str && $number){
	$numbers[^rsplit[$str;[^^-0-9]+]]
	^if($numbers){
		^numbers.menu{
			^if(^numbers.piece.int(0) > 0){
				^if($numbers.piece == $number){$result(1)}
			}{
				$result(^numbers.piece.match[^^(\d+)\-(\d+)^$][]{^if($number >= $match.1 && $number <= $match.2){1}{0}})
			}
		}
	}
}
### End @check_number[]
Вызов такой:
^check_number[3, 2, 1,10-15,18,21,43-54;14]
При совпадении возвращает 1, иначе 0.

Числа в строке могут быть не по порядку и разделяться любыми символами: пробелами, табуляциями или запятыми.

P.S. Кто-то по-моему уже делал что-то подобное, но я не нашёл. Да, метод использует ^rsplit[] смотреть в примерах.