Reg: Write Regular Expressions#

This class will help you write simple regular expressions. The available options are:

These all work as logical “or” if there is more than one string specified:

  • exclude (string or list)

  • exclude_start (string or list)

  • exclude_end (string or list)

Also:

  • include (logical “and”, string or list)

  • include_or (logical “or”, string or list)

  • include_exact (string)

  • include_start (string)

  • include_end (string)

  • and ignore_case (bool)

If you find you want to use more than one include_exact, include_start, or include_end at once, you should write a new regular expression with the class, instead. That is, write multiple expressions and pipe them together with a pipe between, like:

"expression1|expression2"

rather than try to get everything into a single expression, or just use the built-in convenience function:

cfp.joinpat([reg1, reg2])

Note: you may need to use Python package regex instead of re with piped-together expressions.

import cf_pandas as cfp
import regex

Write a regular expression#

reg = cfp.Reg(include="one", exclude="two")
reg.pattern()
'(?i)^(?!.*(two))(?=.*one)'
[string for string in ["onetwo","twothree","onethree"] if regex.match(reg.pattern(), string)]
['onethree']