[syslog-ng] escaping \[ not respected

Balazs Scheidler bazsi at balabit.hu
Wed Oct 1 17:47:45 CEST 2008


I'm Ccing the documentation team to check how well this is covered in
the docs.

I'd welcome alternative syntaxes that'd prevent having to do double
escaping.

I was thinking about the slash syntax like:

Perl style:

match(/no need to escape here\./)

the problem is that with 3.0 we have PCRE in which case it would become:

match(/pattern/ type(pcre))

which is not too perlish anymore.

What about Python style:

match("""no need to escape here\."""

The drawback with this is that Python does escaping in multiline string
literals.

Do you have any more alternatives in mind?

On Wed, 2008-10-01 at 10:35 -0500, Christopher Cashell wrote:
> I think you've nailed it here.  My understanding is that Syslog-NG does
> it's own backslash escaping before passing the string to the regex
> engine which then does the regex backslash escaping.  That means you
> need to double your backslash in those cases.
> 
> I've also found this to be the case for periods and carrots.  If you do
> '\.' it will still match any character as syslog-ng strips the first
> backslash before passing through the regex.  To match a real period you
> need to do '\\.' (same with '\^', to match a real carrot you need '\\^').
> 
> I don't remember if, or how well, this is documented.  I know it kicked
> my butt pretty good until I figured out that I needed to backslash
> escape the backslash escape in a regex, though.  Specifically, when
> using single escaped periods, I was getting bitten with IP address
> regex's that were inexplicably matching things they shouldn't be.
> 
-- 
Bazsi




More information about the syslog-ng mailing list