> Ah ha, thar's the disconnect. Thanks for all the pointers, my def is
> now working. Still don't understand the logic behind this design though.
> I mean why would any programming language have separate search or find
> functions, one for regex and and another for non-regex based pattern
> matching?
>
> Aren't sed, awk, grep, and perl the reference implementations of search
> and replace? They don't have non-regex functions, why does Python?
> Wouldn't it be a lot simpler to use a flag, like grep's '-f', to change
> the meaning of a search string to be literal?
And by this possibly destroying other modules code that rely on their
respective strings being that - and not patterns.
> My other gripe is with the kludgy object-oriented regex functions.
> Couldn't these be better implemented in-line? Why should I, as a coder,
> have to 're.compile()' when all the reference languages do this at compile
> time, from a much more straightforward and easy to read in-line
> function...
You can do that already, no need to - the patterns are cached. Albeit the
cache might be limited in size. but code like
m = re.match(pattern, s)
is not considerably slower than
rex = re.compile(pattern)
m = rex.match(s)
Diez
--
http://mail.python.org/mailman/listinfo/python-list