I am trying to allow the user to do this:
Lets say initially the text says:
"hello world hello earth"
when the user searches for "hello" it should display:
|hello| world |hello| earth
here's what I have:
m = re.compile(pattern)
i =0
match = False
while i < len(self.fcontent):content = " ".join(self.fcontent[i])i = i + 1;for find in m.finditer(content): print i,"\t"+content[:find.start()]+"|"+content[find.start():find.end()]+"|"+content[find.end():]match = Truepr = raw_input( "(n)ext, (p)revious, (q)uit or (r)estart? ")if (pr == 'q'):breakelif (pr == 'p'):i = i - 2elif (pr == 'r'):i = 0
if match is False:print "No matches in the file!"
where :
pattern = user specified pattern
fcontent = contents of a file read in and stored as array of words and lines e.g:
[['line','1'],['line','2','here'],['line','3']]
however it prints
|hello| world hello earth
hello world |hello| earth
how can i merge the two lines to be displayed as one? Thanks
Edit:
This a part of a larger search function where the pattern..in this case the word "hello" is passed from the user, so I have to use regex search/match/finditer to find the pattern. The replace and other methods sadly won't work because the user can choose to search for "[0-9]$" and that would mean to put the ending number between |'s