in reply to newb regular expression question
producing the output#!perl use strict; use warnings; my $lookFor = quotemeta('10.2.56.75'); my $data; { local $/; $data = <DATA>; } if ($data =~ /lease\s+$lookFor\s+\{([^}]*)\}/) { print $1; } else { print "No match\n"; } __DATA__ lease 10.2.56.40 { starts 3 2003/08/20 10:37:28; ends 3 2003/08/20 22:37:28; hardware ethernet 00:20:af:52:12:0f; uid 01:20:af:52:12:0f; client-hostname "Telephone"; } lease 10.2.56.75 { starts 3 2003/08/20 09:57:11; ends 3 2003/08/20 21:57:11; hardware ethernet 00:ef:18:ae:52:83; uid 01:00:ef:18:ae:52:83; client-hostname "beast"; } lease 10.2.56.77 { starts 2 2003/08/19 21:13:05; ends 3 2003/08/20 21:13:05; hardware ethernet 00:02:95:9b:78:18; uid 01:02:0b:95:9b:78:18; }
but unless you provide more specific information, it will be hard (at least for me) to answer this question.starts 3 2003/08/20 09:57:11; ends 3 2003/08/20 21:57:11; hardware ethernet 00:ef:18:ae:52:83; uid 01:00:ef:18:ae:52:83; client-hostname "beast";
|
|---|