正则表达式在匹配后的下一行中选择名称(直到...)

问题描述 投票:0回答:0

我有一个不同级别的文本文件(由选项卡构成),我需要从中选择某些值。这是一个例子。我试了很长时间,但找不到任何解决方案。

        Connection
            Match
                Fridolin
                Marten
    Connection
            Inventory
                        Fill Up
            Fill Up
        Match
            Peter
            Marcus
        Storage
                Room 1
                Room 2
                Room 3
            Match
                Albert
                Jonas
                Hans
    List
    Match
        Peter
        Marcus

我想在“匹配”(前面有相同数量的标签)之后选择以下行中的每个名称,直到下一个级别(不同数量的标签)开始。在这种情况下,我想选择在“匹配”一词之后列出的名称。直到(例如)弹出“连接”并且它前面的选项卡数量(级别)发生变化。 “匹配”后面的名称始终处于同一级别。我不能为此使用多行。

            Match
                Fridolin
                Marten
    Connection
(?<=Match[\r\n]+\t\t?\t?\t?\t?)([ a-zA-ZäöüÄÖÜßé0-9\.-/\-])+

我已经有了这个正则表达式,它至少选择“匹配”之后的名字。我不知道如何选择下一个名称并在级别更改时停止。

regex pattern-matching regex-group regex-lookarounds
© www.soinside.com 2019 - 2024. All rights reserved.