这是我最初的尝试
^(speaker1|speaker2): (.*?)[\n\s\r]+\k<1>: 但在这种情况下是行不通的:
speaker1: kskdjsk speaker2: 223 speaker1: fkjfdsj
因为正则表达式(.*?)继续看,直到找到第三行。
因此,我尝试添加一个负面的查找(?<!^(Io=雷)):)
^(speaker1|speaker2): (.*?(?<!^(speaker1|speaker2):))[\n\s\r]+\k<1>: 但不起作用。
发布于 2022-01-16 11:28:39
您可以在每个字符位置检查是否存在与扬声器模式不匹配的情况:
\bspeaker[12]:((?:(?!\bspeaker[12]).)*)尽管如此,如果您的编程环境允许这样做,那么只匹配speaker[12]:并根据匹配将输入文本拆分将更有效。
https://stackoverflow.com/questions/70729558
复制相似问题