示例#1
0
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
示例#2
0
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