[151174] in North American Network Operators' Group
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