我有一个文件,正在按行读取和分隔,只想打印其中带有关键字“ Cat”的句子。但是,该文件包含以花括号(例如)格式化的助手。 {一旦猫进入房间}
全文:
猫。
{猫进入房间。}狗,你在这里做什么?
DOG。
我在做Cat时看起来像什么?我在看警察。
CAT。
我不知道你是那么大的粉丝!这个城市发生在哪个城市?
DOG。
{他把椅子转向猫。}猜一猜猫!
CAT。
我不知道!我只是想进行对话。
我能够打印包含要查找的关键字的行,但是当我打印时,它也会输出括号行。我尝试添加多个分隔符,但是每次尝试都会出现错误。
for i in catDog.split('\n'):
if str('Cat')in i:
print(i)
我希望输出:
我在做Cat时看起来像什么?
猜猜猫!
相反,我得到:
[猫进入房间。]
我在做Cat时看起来像什么?
[他把椅子交给猫。
猜猜猫!
我不希望任何人为我编写代码;还要指出正确的方向。
答案 0 :(得分:1)
给出如下一行:
{Cat enters the room.} Dog, what are you doing here?
从您的问题尚不清楚(a)该行是否应该匹配,(b)如果该行匹配,我们是否应该仅在{...}
部分之外打印内容。在这两种情况下都假设是,您可以执行以下操作:
for i in catDog.split('\n'):
if str('Cat') in i:
parts = i.split('}', 1)
print(parts[1 if len(parts) > 1 else 0])
哪位可以帮助您:
Dog, what are you doing here?
What does it look like I'm doing Cat? I'm watching Cops.
Take a guess Cat!
如果您想忽略开头{...}
部分中的匹配项,则可以编写:
for i in catDog.split('\n'):
parts = i.split('}', 1)
if str('Cat') in parts[-1]:
print(parts[1 if len(parts) > 1 else 0])
哪个可以让您:
What does it look like I'm doing Cat? I'm watching Cops.
Take a guess Cat!
答案 1 :(得分:0)
如果您知道哪些类型的方括号/括号包含您的助手,则在寻找cat之前,请删除该部分字符串。
if i.startswith('{'):
i = i[i.index("}") + 1:]
if str("Cat") in i:
print(i)