Doesn't mod_lua do this for you?

> On Oct 1, 2015, at 8:51 AM, Rainer Jung <rainer.j...@kippdata.de> wrote:
> 
> Am 01.10.2015 um 14:32 schrieb Nick Kew:
>> On Thu, 2015-10-01 at 12:26 +0200, Rainer Jung wrote:
>>> Since it gets more common to use the expression parser for string
>>> operations and not only for boolean checks, I think it would be useful
>>> (and powerful) to support
>>> 
>>> s/PATTERN/REPLACEMENT/FLAGS
>>> 
>>> and allow back references in REPLACEMENT. The operation would not try to
>>> do the replacement in place but create a new string according to the
>>> given PATTERN and REPLACEMENT.
>> 
>> Are you mixing two things?  That's well-established regexp syntax,
>> but you're looking at applying it to a different class expressions.
>> I think the most interesting issue is to define your behaviour.
>> 
>>> Header set X-USER "expr=%{REMOTE_USER} =~ s/([^@]*)@.*/$1/"
>> 
>> Aha!  In terms of the expression parser, that looks like
>> capturing a side-effect (as opposed to a true/false result).
>> Maybe it would work with something like C comma-list syntax?
>> But I expect the line of least resistance would be to use
>> plain regexp rather than expr.
> 
> I'm talking about the use of the expression parser in the string context, not 
> in boolean context. Support for string context started some time back and we 
> now support it in more and more places. One could implement the
> 
> var =~ s/PATTERN/REPLACEMENT/FLAGS
> 
> syntax also as a four argument function regexreplace(var, PATTERN, 
> REPLACEMENT, FLAGS), but the notation using s/.../.../ should be well-known 
> to many so IMHO is preferable.
> 
> So I want to enhance the expr syntax in string context to allow
> 
> VARIABLE =~ s/PATTERN/REPLACEMENT/FLAGS
> 
> This should return a string that is the result of the same operation in for 
> example perl. VARIABLE will not be changed - unlike in perl - but the result 
> string will be s/PATTERN/REPLACEMENT/FLAGS applied to VARIABLE.
> 
> I think that is currently not possible with the expression parser but I 
> expect it to be useful and if noone has a recipe how to get it done with our 
> flex/bison definitions I'll try to find out.
> 
> Since we don't support s/.../.../ right now, there shouldn't be to much 
> compatibility hassle with existing expressions.
> 
> Regards,
> 
> Rainer

Reply via email to