将短文本片段合并到长句中

将短文本片段合并到长句中

我想将小文本片段放在长句上,例如

输入_完整句子

TRSTUVWSRTPSAREWSTRESW 

短片段列表

TRST 
RESW

输出

我希望输出使得短片段匹配的任何地方都可见,并且恰好位于长句子下方

TRSTUVWSRTPSAREWSTRESW 
||||              |||| 
TRST              RESW

答案1

使用一些 Python:

#! /usr/bin/python3

import sys

textfile = 'input.txt'
patfile = 'patterns.txt'

with open(textfile) as text:
    with open(patfile) as pat:
        patterns = [line.strip() for line in pat]

        for line in text:
            line = line.strip()
            print(line)
            out = line[:]
            for p in patterns:
                out = out.replace(p, '|'*len(p))
            print(''.join(v if v == '|' else ' ' for v in out))
            print(''.join(line[k] if v == '|' else ' ' for k, v in enumerate(out)))

本质上,对于输入文件中的每一行,这都是这样的:

  1. 打印该行并进行复印。
  2. |对于每个模式,用副本中的模式替换行中出现的模式。
  3. |然后,它会打印出除空格之外的所有内容的副本。
  4. |然后,它会在副本中的任何位置打印原始行的字符,否则打印空格。

我假设模式是固定字符串,不包含|

相关内容