使用re.findall()的结果

时间:2015-02-20 09:39:17

标签: python regex

我正在使用Pandoc将HTML转换为LaTeX。它工作得很好,但我想对输出进行后期处理以满足我的需求。请考虑以下输出:

string = r'foo\r\nbar\r\n\begin{longtable}[c]{@{}ll@{}}\r\nbar & bar\tabularnewline\r\nbar & bar\r\n\bottomrule\r\n\end{longtable}'

我需要做的是捕获表格的对齐方式(c选项,列配置和表格内容。这是我到目前为止所做的:

tabular_setup = re.findall(r'\\begin{longtable}\[(.*)\]{(.*)}(.*)\\end{longtable}', string, re.DOTALL)

if tabular_setup:
    tabular_align = tabular_setup[0][0]
    column_setup  = tabular_setup[0][1]
    tab_content   = tabular_setup[0][2]

所以现在我可以将这些值更新为我想要的任何值,但是,如何在原始字符串中更新这些值?

1 个答案:

答案 0 :(得分:2)

def repl(matchobj):
    if matchobj.group(1):
        return "1" #something
    if matchobj.group(2):
        return "1" #something 

new=re.sub(r"\\begin{longtable}\[(.*)\]{(.*)}(.*)\\end{longtable}",repl,string)

您可以使用re.sub和您自己的replacement function来更新论坛。