我需要在每一行上搜索特定字词。如果我找到它,请将其放入列表中。
例如,我有下面的行,我正在寻找字符串'TTT'。
TTT ogkgkgk yyryryr
ghgh TTTXXX fgfgfgf
gfgf ghghgTTT fgfgf
只有第一行应匹配,因为它包含确切的单词“TTT”。如果我使用下面的内容,它将匹配其他两行,因为'TTTXXX'和'ghghgTTT'都包含'TTT'。
mystring = str([line for line in common.split('\n') if 'TTT' in line])
我如何只匹配第一行?
答案 0 :(得分:6)
只需将列表理解中的if
检查更改为if 'TTT' in line.split()
:
[line for line in common.split('\n') if 'TTT' in line.split()]
这将在空格上拆分行,因此'TTT' in line.split()
只有在TTT
与行的每个其他块分隔至少一个空白字符时才会为真。
答案 1 :(得分:1)
我会使用带有字边界的正则表达式:
import re
mystring = str([line for line in common.split('\n') if re.search(r'\bTTT\b', line)])
有关详细信息,请参阅http://docs.python.org/2/howto/regex.html。
答案 2 :(得分:0)
正则表达式应该可以做到!
import re
mystring = str([line for line in common.split('\n') if re.search(r"^(.*\s)*TTT(\s.*)$", line)])