/(?<ip>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\s+(?<path>\/.*)/
To avoid the "leaning toothpick" problem, Perl lets use different match
delimiters, so the above is the same as:
m#(?<ip>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\s+(?<path>/.*)#
I assume you want to capture the IP and the path, right?
if ( $entry =~ m#([\d.]+)\s+(/\S+)# ) {
my ($ip, $path) = ($1, $2);
print "IP $ip asked for path $path\n";
On Fri, Oct 25, 2019 at 5:28 AM Илья Рассадин <[email protected]> wrote:
> For example, this regex
>
> /(?<ip>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\s+(?<path>\/.*)/
>
> On 25.10.2019 13:23, Maggie Q Roth wrote:
> > Hello
> >
> > There are two primary types of lines in the log:
> >
> > 60.191.38.xx /
> > 42.120.161.xx /archives/1005
> >
> > I know how to write regex to match each line, but don't get the good
> > result with one regex to match both lines.
> >
> > Can you help?
> >
> > Thanks,
> > Maggie
>
> --
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> http://learn.perl.org/
>
>
>
--
a
Andy Bach,
[email protected]
608 658-1890 cell
608 261-5738 wk