parser

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

 

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

Два маленьких метода для обработки строк

Spearance 24.10.2005 12:01

Аналоги left/right, только результат отрезают не по количеству символов, а до/после совпадения с подстрокой (в виде regex).

Пример:
$str[Дмитрий Петрович Отрезай]
^left_string[$str;\sПетрович]
вернёт: Дмитрий
^right_string[$str;Петрович\s]
вернёт: Отрезай
########################################
# $substr - символ или набор символов до которого нужно отрезать строку слева (в виде regex)
#####
@left_string[str;substr]
^if(def $str && def $substr && ^str.match[$substr]){
	$result[^str.match[^^(.*?)${substr}.*?^$][]{$match.1}]
}{
	$result[$str]
}
### End @left_string[]

########################################
# $substr - символ или набор символов до которого нужно отрезать строку справа (в виде regex)
#####
@right_string[str;substr]
^if(def $str && def $substr && ^str.match[$substr]){
	$result[^str.match[^^.*?${substr}(.*?)^$][]{$match.1}]
}{
	$result[$str]
}
### End @right_string[]
P.S. Можно объединить оба метода в один.