搜索具有特定单词的行

时间:2013-10-16 22:08:55

标签: python

我需要在每一行上搜索特定字词。如果我找到它,请将其放入列表中。

例如,我有下面的行,我正在寻找字符串'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])

我如何只匹配第一行?

3 个答案:

答案 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)])