Outline for February 27

Due: Homework 4, due on March 4 at 11:55pm


  1. Sorting
    1. selection sort [selsort.py]
  2. Bases and converting [base.py]
    1. Converting from base to base
    2. Shortcut for hex and binary
  3. 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: \
  4. “Raw” string notation: backslash not handled specially; put “r” before string
  5. Useful functions/methods [recomp.py, renocomp.py, regroup.py]
    1. re.compile(str) compiles the pattern into pc (that is, pc = re.compile(str))
    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.span(str) returns tuple (start, end) positions of match
  6. 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 or underscore; inverse of \w
    7. \b matches a word boundary — a word is a sequence of alphanumeric characters


UC Davis seal
Matt Bishop
Office: 2209 Watershed Science
Phone: +1 (530) 752-8060
Email: [email protected]
You can also obtain a PDF version of this.
Version of February 27, 2019 at 12:10AM