2

各行で特定の単語を検索する必要があります。見つけたらリストに入れておきます。

たとえば、以下の行があり、文字列「TTT」を探しています。

TTT   ogkgkgk   yyryryr
ghgh  TTTXXX    fgfgfgf
gfgf  ghghgTTT  fgfgf

正確な単語「TTT」が含まれているため、最初の行のみが一致するはずです。以下を使用すると、「TTTXXX」と「ghghgTTT」の両方に「TTT」が含まれているため、他の 2 行と一致します。

mystring = str([line for line in common.split('\n') if 'TTT' in line])

最初の行だけを一致させるにはどうすればよいですか?

4

3 に答える 3

6

ifリスト内包表記のチェックを次のように変更するだけif 'TTT' in line.split()です。

[line for line in common.split('\n') if 'TTT' in line.split()]

これは空白で行を分割するため、行の他のすべてのチャンクから少なくとも 1 つの空白文字で区切られている'TTT' in line.split()場合にのみ true になります。TTT

于 2013-10-16T22:11:44.623 に答える
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を参照してください。

于 2013-10-16T22:16:07.117 に答える
0

正規表現はそのトリックを行う必要があります!

import re
mystring = str([line for line in common.split('\n') if re.search(r"^(.*\s)*TTT(\s.*)$", line)])
于 2013-10-16T22:14:58.170 に答える