Outline for March 7, 2018

Homework: due March 8, 2018 at 11:59pm


  1. Modifying parameter lists
    1. Not directly [modpar1.py]
    2. Using lists [modpar2.py]
    3. Why it works
  2. Pattern matching
    1. Regular expressions
    2. Atoms: letters, digits
    3. Match any character except newline: .
    4. Match any of a set of characters: [0123456789], [^0123456789], [0-9]
    5. Repetition: *, ?, +, {m,n}; greedy matching; put ? after and they match as few characters as possible
    6. Match start, end of string: ^, $; $ matches end of line, also
    7. Grouping: (, )
    8. Escape metacharacters: \
  3. Useful functions/methods
    1. re.compile(str) compiles the pattern
    2. pc.match(str) returns None if compiled pattern pc does not match beginning of string str
    3. pc.search(str) returns None if pattern pc does not match any part of string str
    4. pc.findall(str) returns a list of substrings of the stringstr that match the pattern pc
    5. pc.group(str) returns the substring of the string str that the pattern pc matches
    6. pc.start(str) returns the starting position of the match
    7. pc.end(str) returns the ending position of the match
    8. pc.start(str) returns the starting position of the match
  4. Useful abbreviations
    1. \d matches any digit; same as [0-9]
    2. \s matches any space character; same as [ \t\n\r\f\v]
    3. \w matches any alphanumeric character and underscore; same as [a-zA-Z0-9_]
    4. \D matches any character except a digit; inverse of \d
    5. \S matches any character except a space character; inverse of \s
    6. \W matches any character except an alphanumeric character orr underscore; inverse of \w

Matt Bishop
Department of Computer Science
University of California at Davis
Davis, CA 95616-8562 USA
Last modified: Version of March 7, 2018 at 6:05PM
Winter Quarter 2018
You can get a PDF version of this