Re: RegEx question

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/plain)
Delete this message
Reply to this message
Author: der.hans
Date:  
To: Main PLUG discussion list
Subject: Re: RegEx question
Am 17. Sep, 2009 schwätzte Paul Mooring so:

> Thanks for the help I did get it working with this:
> name = row[0].match(/^([^@]+)/).to_s
> domain = row[0].match(/[^@]+$/).to_s
> though I'm not sure I fully understand what the [^@] does. I know that ^
> is the start of the line and + means once or more, and I thought that []
> was used to match any of several characters, but it looks like something
> else is going on here. Is this working just a fluke or is that the
> proper wat to do it?


^ does match the beginning of a line when not used in a grouping (
called bracket expression in the man page ). In a grouping it means not as
in "not any of these characters".

[^[:digit:]] == not a number
[^^] == not a ^ :)
[^[:digit:]xyz] == not a number, x, y or z

So your first match looks for the beginning of a line followed by one or
more characters that are not an @ and puts that into the first back
reference variable.

Your second match looks for the longest string with no @ in it at the end
of the string.

I highly recommend commenting regular expressions. Even ones that many
might consider plain and obvious.

Describe the expected input. In your case it looks like you're expected
standard, naked email addresses with no comments, angle brackets, etc.

Describe what you're trying to match, so the user portion of the email
address and the domain portion of the email address.

Describe what each regex does and why. This latter part really helps you
gain understanding in regular expressions :).

BTW, man regex.

There's also a glob man page. Read them on different days :).

ciao,

der.hans
-- 
#  http://www.LuftHans.com/        http://www.ABLEconf.com/
#  Director of Engineering, FonWallet Transaction Solutions, Inc.
#  ABLEconf: Saturday, 2009Okt24, Tempe. Call for Presentations now open.
#  We now return you to your regularly scheduled paranoia...
---------------------------------------------------
PLUG-discuss mailing list -
To subscribe, unsubscribe, or to change your mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss