我想查看字符串" cute"匹配字符串的一部分。目前它确实如此,但如果"可爱"它甚至可以打印它。与其他角色对抗。
这是我的代码:
if "cute" in line:
print(line)
但它可能会打印出如 " cuteffi"或" cutei934"。我试过检查"可爱"只有这样:
if "cute" == line:
print(line)
但是这只会比较整个字符串,即使字符串可能包含内容 "可爱的i934",在这种情况下我会希望它打印整个字符串,因为"可爱"它本身与其他角色间隔开来。
答案 0 :(得分:2)
您可以迭代文件的行split the line based on whitespace characters,并检查是否有任何拆分字符串等于感兴趣的字。
with open("input.txt", "r") as f:
for line in f:
split_words = line.split()
if "cute" in split_words:
print(line)
答案 1 :(得分:2)
最简单,使用split
:
if 'cute' in line.split():
# ...
import re
if re.search(r'(\s|^)cute(\s|$)', line):
# ...
这个正则表达式确保“可爱”#39;被空格或行的开头/结尾包围。单独使用单词边界仍然可以与周围的标点符号匹配。
答案 2 :(得分:1)
在这种情况下你需要正则表达式。将字符串cute
置于两个\b
之间,使cute
>>> line="i am cutei934"
>>>
>>> if (re.findall(r'\bcute\b',line)):
print line
>>> line="i am cute"
>>> if (re.findall(r'\bcute\b',line)):
print line
i am cute
>>> line="i am 123cute"
>>> if (re.findall(r'\bcute\b',line)):
print line
>>> line="i am cute right?"
>>> if (re.findall(r'\bcute\b',line)):
print line
i am cute right?
>>>