It's actually removing everything up until a dot is found
s/// is used to find and replace so this little regex is searching your string eg http:://www.domain4you.com
finding everything up until a dot is found in this case the "http:://www" part and replacing it with nothing.
Now I have a little regex question:
why was ^[^\.]+ suggested rather than ^.*?\. as a pattern.
I'll explain the difference to assist:
^[^\.]+ ^ means start at the beginning of the string [^\.] match any character but a . + do the match multiple times... as many as possible in fact.
^.*?\.
^ means start at the beginning of the string
.*? means match any character as many times as possible until the next character is found
\. means a literal . (the next character)
So that pattern I just gave means start at beginning, match any characters until you reach the first dot.
I would have thought the later pattern would be more efficient, but I don't know the mind of regex so couldn't say for sure.
HTH
Angie
On 16 Apr 2004, at 16:35, B. Fongo wrote:
This regex by Rob is working alright, but can't follow exactly how it truncates an absolute url from first character to the one before the dot.
It returns (.domain4you.com from http:://www. domain4you.com.) exactly what is expected, but I can't easily understand it.
Please I'm not pulling anyone's leg. So just explain it if you can.
(.domain4you.com from http:://www. domain4you.com.)
foreach (@domains) { my $name = $_; $name =~ s/^[^\.]+//; print $name; }
-----Original Message----- From: B. Fongo [mailto:[EMAIL PROTECTED] Sent: Thursday, April 15, 2004 7:29 PM To: [EMAIL PROTECTED] Subject: Regex to match domain for cookie
How do I match a domain name starting from the dot?
# Match something like these ".domain4you.co.uk" ".domain-house.de"
This is what I have:
@domains = ("http://www.domain.com ", "http://www.domain4you.co.uk "http://www.domain-house.de" "https//rrp.cash-day.com" );
foreach (@domains){
$_ =~ /^\D ([\.A-Za-z0-9]+[\.\D])$/; # What is wrong here? # Need ".domain.com", but I get "ww.domain.com" $x = $1; print "$x";
}
Babs
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>