Hi All,
I am still a newbie in Perl and it is only with the help of this list that I was
able to construct the following pattern match.
($v_size_str =~ /\d+\s*['"]\s*x\s*\d+\s*['"]/i)
The problem that I have just realized that this string will match the first line
of this input file but not the second.
Border: None Size: 2.5' x 10' Tag: None
Border: None Size: 10' x 2.5' Tag: None
Here is the test perl script.
#!/usr/bin/env perl
use strict;
use warnings;
open(INFILE, "small_input.txt") or die "Can't open input.txt: $!";
while (<INFILE>) { # assigns each line in turn to $_
my $v_border_id = "";
my $v_dim1_total = 0;
my $v_dim2_total = 0;
my $v_tag = "";
# Echo out the input line.
print "\nInput line: $_";
# Perform a case insensitive check for the proper data format. Capture the
# desired parts of the data using parentheses.
if (/.*border:\s*(.*?)\s*size:\s*(.*?)\s*tag:\s*(.*)\s*/i){
print "properly formatted\n";
# Store the capture patterns in variables to avoid unpredictable results.
my ($v_border_str, $v_size_str, $v_tag_str) = ($1, $2, $3);
# Parse up the size string.
if ($v_size_str =~ /\d+\s*['"]\s*x\s*\d+\s*['"]/i){
print "It looks like a size string.\n";
} else {
print "It doesn't look like a size string.\n";
}
} else {
print "bad format\n";
$v_border_id = "";
$v_dim1_total = 0;
$v_dim2_total = 0;
$v_tag = "";
}
}
close INFILE;
Okay so the pattern is able to ignore a decimal in the first dimesion because it
only needs one digit before the unit indicator. On the right it is trying to
match the whole thing so I need something to match the potential decimal point.
I have tried a couple of things but I am struggling with how to optionally
match the decimal point.
I think what I need is the code equivilant of:
zero or more numbers followed by
zero or one decimal point followed by
one or more numbers followed by
either ' or "
I appreciate your time in giving me some help with this issue. URL's to
documentation are welcome.
Kind Regards,
Keith
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>