On Wed, 22 Feb 2012, jonetsu wrote:

> But there's more than the rate to extract and this is where I haven't
> found how to duplicate the behaviour of continuing a search, when using
> pcredemo.

pcredemo -g

> 1) How can the /g option be added to pcredemo ?

pcredemo -g

> 2) In the case of the finding both rate and ceil values as with
> pcretest above, how come the vector index is again at 0 for the ceil
> value and, what would the 'unset' mean ?  

Because there are two separate match operations. Unset means that that 
subpattern did not participate in the match. 

> /rate (\d+)Kbit|ceil (\d+)Kbit/g
> quantum 12500 rate 300000Kbit ceil 540000Kbit
>  0: rate 300000Kbit
>  1: 300000
>  0: ceil 540000Kbit
>  1: <unset>
>  2: 540000

In the first match, subpattern 1 matched 300000. In the second match 
(starting from the end of the first one) subpattern 1 did not match 
anything, but subpattern 2 matched 540000.

Note that there is more subtlety than you might expect in implementing 
/g (or -g). See the code of pcredemo.c for details.

> I presume that if I name those substring (pcretest does not seem to
> observe naming substrings) then I would simply retrieve by name and
> not really bother about 'unset' values and index values.

Yes, you can use pcre_get_named_subtring() or
pcre_pcre_copy_named_substring() to do that. To get pcretest to display
the values captured by name, you have to use the \C or \G escapes in the
data lines.

Philip

-- 
Philip Hazel

-- 
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to