Newbie: searching an English dictionary for a reg exp
Mon Dec 3 23:57:58 EST 2001
Oh, sorry about that. "re.search" only requires that the pattern match at
the start of the target string; it does not also require that the pattern
match all the way to the end. Put "$" at the end of your pattern and that
will fix it. (The regular expression "$" means end-of-string.*)
And if you just want to print the word that matched, just put
"outfile.write( word + ' ' )" in place of what you have in your "if" block.
Once you know the word matches, that's good enough for you, right? :)
* in Python's regular expression and in PERL's. I have no idea what "$"
means in other languages' regular expression engines.
"^^@++" <ballsacks at xtra.co.enzed> wrote in message
news:3c0b1bbe.173865154 at news.akl.ihug.co.nz...
> On Sun, 2 Dec 2001 13:54:24 -0800, "Eugene" <import binascii; print
> binascii.a2b_base64('ZXVnZW5lQGlzb21lZGlhLmNvbQ==')> wrote:
> Oops, looks like I spoke too soon with my last post.
> The matches aren't working properly, in that it seems to be finding
> too many incorrect matches:
> def searchfor(regpattern):
> print "Searching for",regpattern,
> matchcount = 0
> reg = re.compile(regpattern, re.I)
> m = ""
> for word in dictionary:
> m = reg.match(word)
> if m:
> outfile.write(m.group()+' ')
> matchcount += 1
> print "Found",matchcount
> return matchcount
> Read 1187 words from the dictionary
> Read 1 clues from clues.txt
> Searching for abac. Found 14
> Now, in my dictionary there are only 2 words that would match that
> criteria - abaca and aback, right? It seems to be returning what is I
> guess (abac)*:
> dictionary =
> I get the feeling I'm barking up the wrong tree by using m.group().
> All I want is the word that matches! IMO the doco for MatchObject
> (match-objects.html) is useless (or maybe I am).
> Thanks for any help
More information about the Python-list