Hylafax Mailing List Archives
|
[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
Re: [hylafax-users] request for help with regex for dialrules
Rance Hall wrote on 22/06/05 05:03 PM:
ive got my dial rules about 75% done
but im stuck on two points (which by the way, turn out to be the same
problem)
I have two variables in my dialrules one is called localareas and the
other is localexchanges
both have data of the format "123|456|789"
the issue is that we have a long distance access code that must be
dialed after the main number is dialed if the call is long distance
based on the results of my dialrules tests I have the system building
a complete phone number with the ld access code correctly
assume that hylafax dialrules can get me to the point where I have
every number entered as 19185551212111
where the last three numbers are the ld access code we have discussed,
also note that the ldsuffix is a variable in the dialrules script as well
I need a transformation that will return the existing value except for
ldsuffix if the phone number matches the following regex
^1918(${localexchanges})[0-9]{4}4${ldsufix} assume 918 is the local
area code, then assume that localechanges has the list of local
exchanges, if the string expression matches this, then what needs to
be returned is the original string minus the last ldsuffix variable
this is what I have and what it does:
^1918(${localexchanges})[0-9]{4}4${ldsufix}= \1
This only returns the local exchange I need it to return the
localexchange and the number.
This seemed easier than a bunch of if then else statements to
construct the number in one pass.
Based on vague recollections...
I think the \1 is returning only the localexchange because of the round
brackets around ${localexchanges}
I think if you put another set of round brackets around [0-9]{4} then
you would have a second block of matched stuff to play with after the =
sign which you would access with \2. In other words, I think, just
maybe, this is what you want:
^1918(${localexchanges})([0-9]{4})4${ldsufix}= \1\2
Or extend your existing pair of round brackets to include everything you
want to use as \1 collectively and leave out \2.
Though I can't say that I see any use for the extra 4 you have before
the second $. Just a typographical error? Or else I'm missing
something about how your long distance code works.
Hope that helps.
can someone help me fix this please.
Thank you
____________________ HylaFAX(tm) Users Mailing List _______________________
To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-bin/lsg2.cgi
On UNIX: mail -s unsubscribe hylafax-users-request@xxxxxxxxxxx < /dev/null
*To learn about commercial HylaFAX(tm) support, mail sales@xxxxxxxxx*