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