if(/\$\b[a-z]\w+\b/i)

should work. "\b" only includes those chars in "\w" which doesn't include
"$". So "$" is not include in the word, only "hello" is included.

ted zeng

"Stovall, Adrian M." wrote:

> > -----Original Message-----
> > From: Electron One [mailto:[EMAIL PROTECTED]
> > Sent: Monday, March 10, 2003 12:12 PM
> > To: [EMAIL PROTECTED]
> > Cc: Electron One
> > Subject: Another Regular expression problem
> >
> >
> > Hello Everyone,
> >
> >    I have a perl file that has this,
> >
> > ########################PerlFile.pl###########################
> > ################################
> > #!/usr/bin/perl
> >
> >
> >
> > while(<>){
> >     chomp;
> >     if(/\s*\$[a-z]\w+\s*/i){
> > #    if(/\b\$[a-z]\w+\b/i){
> >         print "Matched: $` -- $& -- $' :\n";
> >      }
> >
> >
> >     else{
> >        print "No match:$_\n";
> >     }
> >
> > }
> > ##############################################################
> > ##################################
> >
> > I have another file that has this in it,
> >
> > ############################testfile.txt######################
> > #####################################
> > $he1lo is the name of a variable
> > what is not allowed $0 is this
> > but this is $a123wgfd343w cool
> > this is correct though $hello dont know why didnt work
> > before. I sure hope this doesnt pass alf$f12w32 cuz it
> > shouldnt $alfonso does match though $hello
> > ##############################################################
> > ############################
> >
> > The perl code is basically supposed to look for real possible scalar
> > variable names. So there should only be two failures,
> > the second and fifth line should not pass.
> >
> > Now, if I run the program how it is, I get this,
> >
> > ############################answer1.txt#######################
> > ##########################
> >
> > Matched:  -- $he1lo  -- is the name of a variable :
> > No match:what is not allowed $0 is this
> > Matched: but this is --  $a123wgfd343w  -- cool :
> > Matched: this is correct though --  $hello  -- dont know why
> > didnt work
> > before. :
> > Matched: I sure hope this doesnt pass alf -- $f12w32  -- cuz
> > it shouldnt :
> > Matched:  -- $alfonso  -- does match though :
> > Matched:  -- $hello --  :
> > No match:
> > ##############################################################
> > ############################
> > if i run it with the commented section as the if statement,
> > and the current
> > if statement commented out, i get this,
> >
> > ###############################answer2.txt####################
> > ##############################
> > No match:$he1lo is the name of a variable
> > No match:what is not allowed $0 is this
> > No match:but this is $a123wgfd343w cool
> > No match:this is correct though $hello dont know why didnt
> > work before.
> > Matched: I sure hope this doesnt pass alf -- $f12w32 --  cuz
> > it shouldnt : No match:$alfonso does match though No
> > match:$hello No match:
> > ##############################################################
> > #############################
> >
> > With regard to answer2.txt, why doesn't it match lines
> > 1,3,4,5 and 6? In
> > the camel book(pg40), it says that the word bound \b matches
> > the beginning
> > of lines.
> >
> > Any advice would be appreciated.
> >
> > Thanks.
> >
>
> Beats me...I can't wait to find out the answer to this one.  $Bill,
> explain it to us idiots...
> _______________________________________________
> Perl-Win32-Users mailing list
> [EMAIL PROTECTED]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

_______________________________________________
Perl-Win32-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to