[Users] regexp and AVP problem

Bogdan-Andrei Iancu bogdan at voice-system.ro
Tue Jul 18 14:12:05 CEST 2006


Hi Klaus,

regexp tries to do the longest match for each token so the (.*) will 
include also the trailing spaces.
try not to put ., but everything except spaces, like  [^ ]*

regards,
bogdan

Klaus Darilion wrote:

> Norman Brandinger wrote:
>
>> Hi Klaus,
>>
>> Below is a little test I put together to try to help you out:
>>
>> avp_write("<tel:+43108>", "$avp(s:pai)");
>> avp_subst("$avp(s:pai)/$avp(s:cli)","/<tel\:(.*)>/\1/");
>> xlog("L_NOTICE", "pai=$avp(s:pai) cli=$avp(s:cli)\n");
>>
>> This is the result:
>>
>> pai=<tel:+43108> cli=+43108
>
>
> Hi Norman. Yes, you are right. I simply had a wrong regular 
> expression. But now I have another problem:
>
> Input: $avp(s:pai) = '<   tel:+43103   >'
> (the part within '')
>
> avp_subst("$avp(s:pai)/$avp(s:paias)","/.*<[[:blank:]]*(.*?)[[:blank:]]*>.*/\1/") 
>
>
> Output: $avp(s:paias) = 'tel:+43103   '
>
> Thus, the leading whitespace is removed, but not the trailing one, but 
> I can't find an error in my regular expression. Maybe some regexp 
> experts out there?
>
> thanks
> klaus
>
>>
>> Regards,
>> Norm
>>
>> Klaus Darilion wrote:
>>
>>> Hi!
>>>
>>> I have problems with avp_subst:
>>>
>>> I have $avp(s:pai) with the value <tel:+43108> (the < and > belongs 
>>> to the AVP)
>>>
>>> Then I want to extract the number into $avp(s:cli):
>>>
>>> avp_subst("$avp(s:pai)/$avp(s:cli)","/tel:(.*)/\1/")
>>>
>>> The result is <+43108>
>>>
>>> Can someone explain me why the leading < belongs to the result? 
>>> Shouldn't it be removed?
>>>
>>> thanks
>>> klaus
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at openser.org
>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>
>
>
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>





More information about the sr-users mailing list