Re: r' question

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Dick Moores

    Re: r' question

    At 10:17 PM 5/17/2008, Gabriel Genellina wrote:
    >En Sat, 17 May 2008 23:37:16 -0300, Dick Moores <rdm@rcblue.com escribió:
    >
    I have a text file of phone numbers, which I'd like to search with aregex.

    fstr = "\sjoe\s"
    regex = "^.*" + fstr + ".*$"

    fstr = "\sjoe\s"
    regex = "r'^.*" + fstr + ".*$'"
    >
    >The r"..." is a signal to the parser - meaning
    >"don't interpret the escape characters here".
    >Note that the r is OUTSIDE the quotes. In your
    >example, the escape characters are in fstr, so
    >it should be written as r"\sjoe\s"
    However, (please refer back to my original post)
    I want to keep the fstr, ultimately to be the
    string entered by the user who knows a bit about
    regex, but not how to use r' ' . Or
    alternatively, not assume any knowledge of regex,
    but build in some options, such as ignoring/not
    ignoring case, searching on just a string, or on
    a word. So I want to know how to build the user's
    fstr into regex. I apologize for not making this clear.
    >Now, if you want "the lines that contain the
    >word joe surrounded by space", just use:
    >
    >import re
    >regex = r"\sjoe\s"
    >p = re.compile(rege x, re.I)
    >f = open('phone.txt ', 'r')
    >for line in f:
    m = p.search(line)
    if m:
    print m.group()
    >f.close()
    >
    >A file is its own line iterator (no need for
    >readlines). And since you're iterating over
    >lines, the regex doesn't have to test for it ^ and $.
    Yes, that works. Thanks.

    Dick Moores

Working...