On 17/12/13 03:18, Peter Lambrechtsen wrote:
Essentially I am trying to do a split on the ADSL Circuit ID:
ADSL-Agent-Circuit-Id = "POLT01 eth 1/1/02/05/4/14/1:10"
And trying to grab the value in the 6th split being "14" and check it's a 14.
I would have hoped something like this regex would work:
/(?<=\/)([\w-]*)(?=\/)/
Few things: 1. This looks like a PCRE regexp; are you sure you're compiling w/ PCRE support? 2. The "\w" will need double-backslash i.e. \\w - the double-slash makes the unlang parser emit a single slash to the regexp input. The regexp parser in unlang is a bit funky in this regard I'm afraid :o( 3. However you should only need to single-escape the regexp deliminter (i.e. once, for the unlang parser). 4. That regexp doesn't work for me when I try it from the python repl; how are you sure it's right 5. It's obvious from your text that you're assuming the regexps work differently than they do - they don't do a "searchall" operation or similar. It's a single match, and each %{n} refers to a single capture group from a single match. You'll need to write out a regexp in full that matches your input e.g. if (blah =~ /\\w+ \\w+ .+\/.+\/.+\/.+\/.+\/(.+)\/.+/) { update control { Tmp-String-0 := "6th /-delimited is %{1}" } }