Programmers with network engineering skills

Keegan Holley keegan.holley at sungard.com
Tue Mar 13 03:01:57 UTC 2012



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

> 
> On Mar 12, 2012, at 2:12 PM, Keegan Holley wrote:
> 
>> 2012/3/12 Tei <oscar.vives at gmail.com>
>> 
>>> On 12 March 2012 09:59, Carlos Martinez-Cagnazzo <carlosm3011 at gmail.com>
>>> wrote:
>>>> Hey!
>>>> 
>>>> 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 anything
>>>> different that .com, .net or the local ccTLD'
>>>> 
>>>> :=)
>>>> 
>>>> Carlos
>>> 
>>> 
>>> Yea, I don't even know how programmers can get that wrong.  The regex
>>> is not even hard or anything.
>>> 
>>> 
>>> 
>>> (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\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\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
>>> 
>>> 
>> I bet it's even harder without the use of a search engine.
> 
> Whenever I've built code to check someone's email address on a form, I always just looked for the following:
> 
> 1.    matches ^[^@]+@[A-Za-z0-0\-\.]+[A-Za-z]$
> 2.    The component to the right of the @ sign returns at least one A, AAAA, or MX record.
> 
> 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
> 
> Owen
> 

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 regular expression like the one above than to write one from scratch.  Sometimes 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 solve.   
> 




More information about the NANOG mailing list