Without using re, this may work (untested ;-): def lines_with_words(file, word1, word2): """Print all lines in file that have both words in it.""" for line in file: words = line.split() if word1 in words and word2 in words: print line
/Jean Brouwers Rickard Lindberg wrote: > [EMAIL PROTECTED] wrote: > > Hi > > > > Am pretty new to python and hence this question.. > > > > I have file with an output of a process. I need to search this file one > > line at a time and my pattern is that I am looking for the lines that > > has the word 'event' and the word 'new'. > > > > Note that i need lines that has both the words only and not either one > > of them.. > > > > how do i write a regexp for this.. or better yet shd i even be using > > regexp or is there a better way to do this.... > > > > thanks > > Maybe something like this would do: > > import re > > def lines_with_words(file, word1, word2): > """Print all lines in file that have both words in it.""" > for line in file: > if re.search(r"\b" + word1 + r"\b", line) and \ > re.search(r"\b" + word2 + r"\b", line): > print line > > Just call the function with a file object and two strings that > represent the words that you want to find in each line. > > To match a word in regex you write "\bWORD\b". > > I don't know if there is a better way of doing this, but I believe that > this should at least work. -- http://mail.python.org/mailman/listinfo/python-list