Hi, well mabe it's not so complex (just for me).
I have this code which works fine:
#start###########################################################
from pyparsing import *

data = """23 different size pry bars
hammer the pitchfork
pound felt paper staple the felt paper every to inches staple hammer"""

def reportACertainWord( st , locn , toks ):
   theWord = toks[0]
   if theWord == Word(nums):
print "Found '%s' on line %d at column %d" % (theWord, lineno( locn , st ), col( locn , st ))
       print "The full line of text was:"
       print "'%s'" % line( locn , st )
       print (" "*col( locn , st ))+" ^"
       print

returnedWords = Word(alphanums).setParseAction( reportACertainWord )
OneOrMore(returnedWords).parseString(data)
#end################################################################

But what I want to search for is any number plus the word after it.
I thought the following code would do it but it doesn't (I only changed the if line).
Any help would be appreciated.
Pete

#start###########################################################
from pyparsing import *

data = """23 different size pry bars
hammer the pitchfork
pound felt paper staple the felt paper every to inches staple hammer"""

def reportACertainWord( st , locn , toks ):
   theWord = toks[0]
   if theWord == Word(nums) + Word( alphas ):
print "Found '%s' on line %d at column %d" % (theWord, lineno( locn , st ), col( locn , st ))
       print "The full line of text was:"
       print "'%s'" % line( locn , st )
       print (" "*col( locn , st ))+" ^"
       print

returnedWords = Word(alphanums).setParseAction( reportACertainWord )
OneOrMore(returnedWords).parseString(data)
#end################################################################


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to