我有一个包含如下行列表的文件:
-apple
banana tomato
-orange
maracuja
cucumber <hide>
peanut
-apple
apricot
grapefruit </hide> banana
lime
-grape
lemon
我想找到所有以-
为前缀的行,并将它们写入dict,如下所示:{original_line_number: '-apple', ...}
,但排除<hide></hide>
段中的行。这看起来很简单,但在我的实际用例中,我得到了多个非常复杂的<hide>
序列。对于我在re.compile中准备的每个复杂正则表达式模式,如下所示:
re.compile(r'really complicated regex for 1st hide sequence (' + r'|'.join(some_list_of_possibilities) + r') yeah it still continue%s' % not_enough_complicated_yet)
有没有办法获得带有-
前缀的行列表,排除隐藏序列中的行,并仍然索引它们的原始行号?
我已经试过了:
-
行,与原始列表比较并获取行号:如果内部有一个带前缀的-
行,并且隐藏序列外部的同一行与示例中的-apple
相同,则失败\n
字符以外的所有字符:对我来说失败,因为我找不到如何保留\n
字符(不能用空格替换它们)注意:我想得到前缀为“-
”的行,因此如果有像-apple <hide> banana
这样的行,我想得到整行内容:/
最后,我通过用空格(或任何其他替代字符)替换隐藏序列中的所有字符(除了换行符)解决了这个问题。这将保留行号并禁用隐藏序列
这对你有用吗
相关问题 更多 >
编程相关推荐