Basically, I am trying to extract text between two strings within a loop as one of the two words changes after the information is extracted.
so for example, the string is:
string = alpha 111 bravo 222 alpha somethingA end, 333 bravo somethingB end 444 alpha 555 bravo
So I want to extract the text between alpha and end and then bravo and end. I have quite a few of these unique words in my file so I have a list and a counter to go through them. See the code below:
string = 'alpha 111 bravo 222 alpha somethingA end, 333 bravo somethingB end 444 alpha 555 bravo'
words = ['alpha', 'bravo'] #there will be more words here
counter = 0
stringOut = ''
#going through the list of words
while counter < len(words):
firstWord = words[counter]
lastWord = 'end'
data = string[string.find(firstWord)+len(firstWord):string.find(lastWord)].strip()
#this will give the text between the first ocurrance of "alpha" and "end"
#since I want just the smallest string between "alpha" and "end", I use another while loop
#to see if firstWord occurs again
while firstWord in data:
ignore,ignore2,data = data.partition(str(firstWord))
counter = counter + 1
stringOut += str(data) + str('\n')
print('output string is \n' + str(stringOut))
#this code gives the correct output for the text between the first word ("alpha") and "end".
#but when the list moves to the next string "bravo", it takes the text between the first "bravo"
#and the "end" that was associated with the information required for "alpha" ("somethingA")
Can anyone help me with this please? Any suggestions are welcome.
Many thanks.