Hi Viktor and Dominic,
> On Apr 7, 2018, at 2:46 AM, Dominic Raferd <[email protected]> wrote:
>
> On 7 April 2018 at 07:39, J Doe <[email protected]
> <mailto:[email protected]>> wrote:
> Hi Viktor and Dominic,
>
> If I do the following on Ubuntu 16.04 LTS:
>
> $ echo "1 2" | egrep '[[:digit:]]\s[[:digit:]]’
> 1 2
>
> … where “1 2” are highlighted in bash
>
> Am I correct that since this POSIX regex for the digits AND the \s is still
> being interpreted, my system must support the GNU regex extensions ?
>
> It is standard Ubuntu it will support GNU regex extensions, but why not use
> pcre? It is more powerful, more standardised, and - my impression - more
> widely used for Postfix tables. Just do:
> $ sudo apt-get install postfix-pcre
Thank you for your reply.
It occurred to me that I could side-step the issue of GNU extensions and
whether they’re supported by converting the string I e-mailed a couple of
e-mails back to full POSIX regex (in this case removing the \s). I ended up
with:
/^(Received:[[:space:]]from)[^;]+(;[[:space:]][A-Z]{1}[a-z]{2,3},)[[:space:]]+([[:digit:]]{1,2}[^\n]+)/
REPLACE $1 [127.0.0.1] (localhost [127.0.0.1]) by myserver.com$2 $3
…and it works.
Have I missed anything else that needs to be converted so that the regular
expression is POSIX only ?
- J