--On 29 June 2007 10:53:40 -0700 Marc Perkel <[EMAIL PROTECTED]> wrote:

> Need some regex help. What I want to do is grab the domain part of a
> sender host name where it is a one level domain.
>
> xxx.ftp.perkel.com -> perkel.com
>
> And a separate one that works with two level domains:

> xxx.ftp.perkel.co.uk -> perkel.co.uk
>
> Here's a crude poice of code I've been using. Need something like this.
>
>     set acl_c_sender_host_domain =
> ${sg{$sender_host_name}{(\N^.*\.)(.*\.(com|net|org|edu|biz|name|mil|gov))
> $\N}{\$2}}

Try these, which are untested:


${sg{$sender_host_name}{(\N^.*\.)([^\.]+\.[^\.]+$) $\N}{\$2}}

and (for two-level)
${sg{$sender_host_name}{(\N^.*\.)([^\.]+\.[^\.]+\.[^\.]+$) $\N}{\$2}}

NB: the "$" matches the end of the string. "[^\.]+" should match a string 
of non-dots.

This might be a bit more efficient:

${sg{$sender_host_name}\N{.*\.([^\.]+(\.[^\.]+)2$) $\N}{\$1}}

Which should match, anything followed by a dot, (followed by a non-dot 
string, (followed by a dot followed by a non-dot string ) twice) at the end 
of the line.

And you could go for 3-level by replacing "2" with "3", etc. So, you could 
even provide that number parametrically.


> Thanks in advance.



-- 
Ian Eiloart
IT Services, University of Sussex
x3148

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/

Reply via email to