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 = True
pr = raw_input( "(n)ext, (p)revious, (q)uit or (r)estart? ")
if (pr == 'q'):
break
elif (pr == 'p'):
i = i - 2
elif (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
Ok, going back to original solution since OP confirmed that word would stand on its own (ie not be a substring of another word).
yields: