Python中的Regex模式在fi中搜索文本块

2024-09-29 17:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我是新的正则表达式,我正试图编译一个正则表达式匹配下面的文本块,有多个这样的文本块在一个文件中,我想把这些块移到另一个文件。请帮帮我!在

conversion DC_PRESS_1024 {
    kind = conversionKind rationalFunction;
    physMin = 0;
    physMax = 10;
    coefficients = ( 
        0;
        1024;
        0;
        0;
        0;
        1;
    )
    comments = 
        commentVal {
            value = 
                mlString {
                    value = "[VIT_DDS]External_CompuMethod";
                    language = language en;
                }
            kind = commentKind internal;
        }
}

注意:转换XX_XXXX_XXX{}内的内容各不相同。我想搜索整个块,而不考虑其名称,即XX_XXXX_XXX和{}内的内容。在


Tags: 文件文本内容valuedclanguagexxxpress
1条回答
网友
1楼 · 发布于 2024-09-29 17:22:56

这里的难点是如何处理大括号的开和关。如果嵌套方括号的深度可能不受限制,那么我不认为可以用正则表达式来实现,因为这将是一种递归模式。在这种情况下,您需要一个解析器,跟踪左括号并逐个读取文本标记。在

但是,如果您已经知道在块中不可能有两个以上的嵌套级别(如您的示例所示),那么您可以使用如下正则表达式:

conversion\s*\w+\s*\{([\s\w\;\=\(\)\[\]\"]|(\{([\s\w\;\=\(\)\[\]\"]|(\{[\s\w\;\=\(\)\[\]\"]+\}))+\}))+\}

请访问:http://regexr.com/3b794

相关问题 更多 >

    热门问题