[151174] in North American Network Operators' Group

home help back first fref pref prev next nref lref last post

Re: Programmers with network engineering skills

daemon@ATHENA.MIT.EDU (Keegan Holley)
Mon Mar 12 23:03:13 2012

In-Reply-To: <31CC8256-381A-4512-9628-8055D4B6A30A@delong.com>
From: Keegan Holley <keegan.holley@sungard.com>
Date: Mon, 12 Mar 2012 23:01:57 -0400
To: Owen DeLong <owen@delong.com>
Cc: "<nanog@nanog.org>" <nanog@nanog.org>
Errors-To: nanog-bounces+nanog.discuss=bloom-picayune.mit.edu@nanog.org



On Mar 12, 2012, at 5:32 PM, Owen DeLong <owen@delong.com> wrote:

>=20
> On Mar 12, 2012, at 2:12 PM, Keegan Holley wrote:
>=20
>> 2012/3/12 Tei <oscar.vives@gmail.com>
>>=20
>>> On 12 March 2012 09:59, Carlos Martinez-Cagnazzo <carlosm3011@gmail.com>=

>>> wrote:
>>>> Hey!
>>>>=20
>>>> On 3/8/12 8:24 PM, Lamar Owen wrote:
>>>>> On Monday, March 05, 2012 09:36:41 PM Jimmy Hess wrote:
>>>>> ...
>>>>>>  (16)  The default gateway's IP address is always 192.168.0.1
>>>>>>  (17) The user portion of E-mail addresses never contain special
>>>>>> characters like  "-" "+"  "$"   "~"  "."  ",", "[",  "]"
>>>> I've just had my ' xx AT cagnazzo.name' email address rejected by a web=

>>>> form saying that 'it is not a valid email address'. So I guess point
>>>> (17) can be extended to say that 'no email address shall end in anythin=
g
>>>> different that .com, .net or the local ccTLD'
>>>>=20
>>>> :=3D)
>>>>=20
>>>> Carlos
>>>=20
>>>=20
>>> Yea, I don't even know how programmers can get that wrong.  The regex
>>> is not even hard or anything.
>>>=20
>>>=20
>>>=20
>>> (?:[a-z0-9!#$%&'*+/=3D?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=3D?^_`{|}~-]+)*|"=
(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x=
0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[=
a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-=
4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x=
21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
>>>=20
>>>=20
>> I bet it's even harder without the use of a search engine.
>=20
> Whenever I've built code to check someone's email address on a form, I alw=
ays just looked for the following:
>=20
> 1.    matches ^[^@]+@[A-Za-z0-0\-\.]+[A-Za-z]$
> 2.    The component to the right of the @ sign returns at least one A, AAA=
A, or MX record.
>=20
> If it passed those two checks, I figured that was about as good as I could=
 do without resorting to one of the following:
>    1.    An incomprehensible and unmaintainable regex as the one above
>    2.    Actually attempting delivery to said address
>=20
> Owen
>=20

I've done some scripting with the similar goals and to be completely honest I=
've skews at least consulted google.  It's much easier to read and test a re=
gular expression like the one above than to write one from scratch.  Sometim=
es it takes an incomprehensible regex to be thorough. Sometimes close enough=
 really is close enough though. It depends on the problem you are trying to s=
olve.  =20
>=20


home help back first fref pref prev next nref lref last post