def match_env(env='section', get_content=True): '''matchs text in the title or captions, \section{Chapter one}''' er = Regex() er.add(r"\\%s{" % env) if get_content: er.add(er.group_begin(name="content")) er.add(er.non_greedy(er.zero_or_more(er.anything()))) if get_content: er.add(er.group_end()) er.add(r"}") er.compile() return er
def match_begin_end_env(env='equation', get_content=True): '''matchs \begin{equation*} something ... \end{equation} One special option is env='anything', will match all \begin{}*\end{} ''' er = Regex() er.add(r"\\begin{") er.add(er.zero_or_more(er.whitespace())) if env == 'anything': env = er.non_greedy(er.zero_or_more(er.anything())) er.add(env) er.add(er.zero_or_more(er.whitespace())) er.add(er.zero_or_one(r'\*')) er.add(er.zero_or_more(er.whitespace())) er.add(r"}") if get_content: er.add(er.group_begin(name="content")) er.add(er.non_greedy(er.zero_or_more(er.anything()))) if get_content: er.add(er.group_end()) er.add(r"\\end{") er.add(er.zero_or_more(er.whitespace())) er.add(env) er.add(er.zero_or_more(er.whitespace())) er.add(er.zero_or_one(r'\*')) er.add(er.zero_or_more(er.whitespace())) er.add(r"}") er.compile() return er