Страница 1 из 1

проверку по поводу нахождения подстроки в строке

СообщениеДобавлено: 03 авг 2018, 16:37
whoim
А проверку по поводу нахождения подстроки в строке кто нибудь делал?)

ExecIf($[ ${VARIABLE} содержит "ТЕКСТ" ]?..)

да, я новичок xD

Re: проверку по поводу нахождения подстроки в строке

СообщениеДобавлено: 03 авг 2018, 17:02
asterisker
У меня так:
ExecIf($["${CALLERID(NUM):1:1}" = "_"]

но тут моя специфика использования, не универсально.

Ну еще моя специфика - через cut:
same => n,Set(SEQ=B31-B32-B34-B35-B36-B37-B38)
same => n(loop),Set(SEQLEN=${FIELDQTY(SEQ,-)})
same => n,Set(RNDSEL=${RAND(1,${SEQLEN})})
same => n,Set(CURITEM=${CUT(SEQ,-,${RNDSEL})})
same => n,GoSub(single-trunk-out,s,1(${ARG1},${CURITEM}))
same => n,ExecIf($['${RNDSEL}' = '${SEQLEN}']?Set(SEQ=${STRREPLACE(SEQ,-${CURITEM})}):Set(SEQ=${STRREPLACE(SEQ,${CURITEM}-)}))
same => n,Noop(${SEQ})
same => n,GotoIf($[${FIELDQTY(SEQ,-)} = 1]?end:loop)

Re: проверку по поводу нахождения подстроки в строке

СообщениеДобавлено: 03 авг 2018, 17:20
whoim
Не, у меня значения другие.. со своего сервиса

Пока так оставлю. Стыдно, но работает
Код: выделить все
exten => _X.,n,Set(REGION=${SHELL(wget....
exten => _X.,n,ExecIf($["${REGION}q" : "(^.+Bashkortostan.+)"]?Set(TRUNK_NUM=01))
exten => _X.,n,ExecIf($["${REGION}q" : "(^.+Leningradskayaobl.+)"]?Set(TRUNK_NUM=02))
exten => _X.,n,ExecIf($["${REGION}q" : "(^.+gSankt-Peterburg.+)"]?Set(TRUNK_NUM=02))
exten => _X.,n,ExecIf($["${TRUNK_NUM}"=""]?Set(TRUNK_NUM=00))

Re: проверку по поводу нахождения подстроки в строке

СообщениеДобавлено: 03 авг 2018, 17:28
whoim
наверное, даже так будет вернее
"q${REGION}q"

любой символ, ибо по окончанию строки regexp не ищет, а я в них не понимаю(

Re: проверку по поводу нахождения подстроки в строке

СообщениеДобавлено: 03 авг 2018, 18:45
virus_net
function REGEX

Re: проверку по поводу нахождения подстроки в строке

СообщениеДобавлено: 08 авг 2018, 12:12
whoim
именно ее разновидность (в операторе :) и используется.
И именно это я и просил, поскольку не изучал регулярные выражения

Re: проверку по поводу нахождения подстроки в строке

СообщениеДобавлено: 08 авг 2018, 14:30
Repz
если ищем совпадения в строке, то конструкцию можно сократить
exten => 10,1,set(text=piter812)
;exten => 10,1,set(text=moscow495)
same => n,gotoif($[${text} =~ "er8"]?true:false)
;same => n,gotoif($[${text} =~ "sco"]?true:false)
same => n(true),NoOp(true ${text})
same => n,hangup
same => n(false),NoOp(false ${text})