[Baypiggies] regex puzzle
Matt Good
matt at matt-good.net
Wed Mar 12 03:05:57 CET 2008
On Mar 11, 2008, at 10:47 AM, Aaron Maxwell wrote:
> I'm writing a tool with a command line interface, using the cmd
> module. It
> has a "log search" command, which accepts a regex pattern as an
> argument.
>
> After tokenizing the input, I finally get what the user typed as the
> regex
> pattern into a variable search_str:
>
> regex = re.compile(search_str)
> return [line for line in loglines if regex.search(line)]
>
> The problem is that search_str is a variable of type str, not a raw
> string.
> So the user will have to escape many characters: e.g., "\\bREPO"
> instead
> of "\bREPO" as the pattern.
I think what you're seeing is due to how the cmd module parses the
command input. It tries to behave like a Unix shell and treats \ as
an escape character as described here:
http://trac.edgewall.org/ticket/994
It's easy to workaround this by overriding Cmd.onecmd and replacing
the backslashes:
http://trac.edgewall.org/changeset/3513/trunk/trac/scripts/admin.py
-- Matt
More information about the Baypiggies
mailing list