Thanks Rob and Steve. I'm glad to know how to keep nulls from matching in
the string, and why it works that way. I did end up testing to see if the
string was null, and maybe that's better actually, since I take separate
action based on whether it's null or not (no sense doing the comparison if
the string is null -- it's comparing against 690,000 records).
I wasn't complaining about working all evening, by the way -- just
highlighting how little I know about Perl since a little thing like that
can keep me here all night!
Thanks,
Scott
Scott E. Robinson
SWAT Team
UTC Onsite User Support
RR-690 -- 281-654-5169
EMB-2813N -- 713-656-3629
"Rob Dixon"
<[EMAIL PROTECTED] To: [EMAIL PROTECTED]
.co.uk> cc:
Subject: Re: Preventing null string
from matching
03/25/03 07:23 AM
Scott E Robinson wrote:
> Dear Perl communinty,
>
> I don't exactly want to ask this now, since I just spent much of the
> evening trying to handle this case, but I wonder if there's an easy
> way to
> keep the following regular expression from matching if the string in
> the
> regex is null:
>
> $_ = ":B000:L520:M260:M:88:8:M602:";
> $string_to_match="whatever";
> $count = () = /\b($string_to_match)\b/g;
>
> If $string_to_match is null, whatever's in $_ matches it -- and for
> some
> reason i don't understand it matches twice for every colon-delimited
> piece
> of $_, though that hardly matters.
>
> Is there an easy way to keep the null string from matching anything?
> It
> would have saved me an evening if I'd known about it.
>
> Thanks,
>
> Scott
>
> Scott E. Robinson
> SWAT Team
> UTC Onsite User Support
> RR-690 -- 281-654-5169
> EMB-2813N -- 713-656-3629
>
>
>
> "Rob Dixon"
> <[EMAIL PROTECTED] To:
> [EMAIL PROTECTED] .co.uk> cc:
> Subject: Re:
> Searching for the right regular expressions
>
> 03/24/03 10:08 AM
>
>
>
>
>
> Hi. Rading your post again, it looks like I kinda screwed up.
> Lets try again!
>
> Rob Dixon wrote:
> > Hi Scott
> >
> > Scott E Robinson wrote:
> > > Dear Perl experts,
> > >
> > > I'm trying to find the right regular expressions to do some simple
> > > (?) string processing. Can anyone tell me how to do these?
> > >
> > > 1. Given a string consisting of substrings delimited by colons,
> > > such as :B520:L201:M:M260:8:G607:,
> >
> > my $string = ':B520:L201:M:M260:8:G607:';
> >
> > > how can I
> > > a. remove the single-character and all-numeric substrings (M
> > > and 8 in this example), leaving the rest alone?
> >
> > This is an array of all the wanted substrings:
> >
> > my @wanted = $string =~ /[a-z]\w+/ig;
> > print "@wanted\n";
> >
> > output
> >
> > B520 L201 M260 G607
>
> I think that's right, although it assumes that the values that aren't
> all-numeric start with an alpha.
>
> > > b. remove all but the single-character and all-numeric
> > > substrings and leave the rest alone?
> >
> > This is an array of all the wanted substrings:
> >
> > my @wanted = $string =~ /\b\w\b/ig;
> > print "@wanted\n";
> >
> > output
> >
> > M 8
>
> Right result, but fails to find '88'. Try:
>
> my @wanted = $string =~ /\b\w\d*\b/ig;
>
> > > c. remove all but single- or double-character substrings and
> > > all-numeric substrings and leave the rest alone?
> >
> > This is an array of all the wanted substrings:
> >
> > my @wanted = $string =~ /\b[a-z]\w?\b/ig;
> > print "@wanted\n";
> >
> > output
> >
> > M
>
> This is right, I think.
>
> > (Note that this won't find '8M', but your data doesn't look like
> > that will come up.)
> >
>
>
> That's more like it!
>
> Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]