Another regex approach, with broader matching and some negative cases. See Regexp::Common.
Note that the regex might easily be extended to validate the entire record.c:\@Work\Perl\monks>perl -wMstrict -le "use Regexp::Common; ;; my @records = ( 'BCInletTemperature = 90[C]', 'BCInletTemperature = 33.56[C]', 'Whatever = -.012[C]', 'Wrong = 90 [C]', 'AlsoWrong = 9.0.1[C]', ); ;; for my $record (@records) { printf qq{'$record' -> }; my $got_temp = my ($temp) = $record =~ m{ = \s+ ($RE{num}{real}) \[ }xms; if ($got_temp) { print qq{temp '$temp'}; } else { print 'no got temp'; } } " 'BCInletTemperature = 90[C]' -> temp '90' 'BCInletTemperature = 33.56[C]' -> temp '33.56' 'Whatever = -.012[C]' -> temp '-.012' 'Wrong = 90 [C]' -> no got temp 'AlsoWrong = 9.0.1[C]' -> no got temp
Give a man a fish: <%-{-{-{-<
In reply to Re: how to split a string at [ ?
by AnomalousMonk
in thread how to split a string at [ ?
by blaui
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |