Well, putting aside your desire to match the "important" part of a domain name, you probably want to use a regex that says "match and save a set of non-. characters that are followed by a ., then non-. and non-/ characters, and then either a / or the end of the string".
Basically, you want to ensure you're a) only looking at the domain name, and b) getting the penultimate .-separated sequence.
It would probably be more intuitive to use two
split()s:
($domain) = split '/', $string;
$wanted = (split /\./, $domain)[-2];
# or
$wanted = (split /\./, (split '/', $string)[0])[-2];
Here's the regex approach:
($wanted) = $string =~ m{
( [^.]+ ) # save the non-. sequence to $1
\. # .
[^./]+ # the final non-. non-/ sequence
(?: / | $) # / or the end of the string
}x;
japhy --
Perl and Regex Hacker
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.