Hi Jeremy,
On Tue, 2011-04-19 at 14:21 +0800, Jeremy Kerr wrote:
> Hi Guilherme,
>
> > This is used only when the List-ID lookup doesn't return any projects *and*
> > the PATCHWORK_FALLBACK_TO_LISTEMAIL setting is set to True.
>
> Just one more thing I noticed when applying this:
>
> > +def extract_email_addresses(str):
> > + email_re = re.compile(
> > + r"([_\.0-9a-zA-Z-+=]+@(([0-9a-zA-Z-]{1,}\.)*)[a-zA-Z]{2,})")
>
> Is there not an existing RE we can use here? Would be good not to have
> to reinvent the wheel.
The only one I could find is in django.core.validators but it doesn't
seem to be part of the public API, so it's probably not a good idea to
use it.
email_re = re.compile(
r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" #
dot-atom
r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-011\013\014\016-\177])*"'
# quoted-string
r')@(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+[A-Z]{2,6}\.?$',
re.IGNORECASE) # domain
>
> If not:
>
> > + # re.findall() will return a list of tuples because we have multiple
> > + # groups on the regex above, but we're only interested on the outermost
> > + # group (which should contain the whole email address), so we drop the
> > + # second and third groups.
>
> In that case, use the non-grouping format: (?:...).
Oh, good catch; I didn't know about that. :)
>
> Also, using \w allows you to reduce the size of the regex.
Indeed, I can use \w on the user part, but not on the hostname part as
\w matches the underscore as well, which doesn't seem to be allowed in
hostnames.
Thanks for the review and suggestions, I'll submit a second version of
this patch in a minute.
--
Guilherme Salgado <https://launchpad.net/~salgado>
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Patchwork mailing list [email protected] https://lists.ozlabs.org/listinfo/patchwork
