Hello everyone I need help with a mix of Python and RegEx. I am working on a project that is taking raw text and converting it to XML. The text consist of multiple people speaking saying different things. What I am trying to do is break the speeches up and convert them to XML.
The sample string is:
Mr. COX. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum sollicitudin vestibulum consectetur. Aliquam rhoncus nisl id velit gravida, quis volutpat est eleifend. Donec posuere a magna ac molestie. Vivamus sed lacinia lectus, quis feugiat libero. Nam sapien lacus, hendrerit at posuere ut, ullamcorper sit amet augue. Ut fringilla lobortis nulla. Nulla facilisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur rutrum dictum. Aenean a sem mollis justo scelerisque posuere eget sit amet orci. Praesent condimentum, leo at commodo dapibus, leo mi pretium lectus, et sagittis lorem sapien ut enim. Nulla sagittis varius eros, eget pretium arcu suscipit aliquet. Mr. SEABASS. Ut condimentum lobortis suscipit. Donec eget tempor ex, vel porttitor velit. Aliquam vulputate, leo in aliquet laoreet, sem ante dapibus velit, nec imperdiet felis tellus vel leo. Nunc mattis velit sed turpis consectetur tempus. Nam volutpat vel metus sed aliquam. Curabitur vitae elit urna. Nulla vehicula sapien quis libero elementum, vitae sodales tellus commodo. Pellentesque pulvinar felis vitae neque viverra posuere vitae sit amet neque. Curabitur lorem libero, mollis consectetur tempus sit amet, tincidunt vitae dolor. Cras ullamcorper arcu ac orci pharetra consequat. Nunc magna justo, sollicitudin at enim vel, volutpat elementum sapien. Mauris sit amet velit in diam imperdiet tempor facilisis et ex. Praesent consectetur leo a eros mattis tempor. Mr. REX. Nullam interdum urna quis nunc sodales, id posuere nisl malesuada. Nam nec lacus et ipsum ultrices pharetra. Nullam vitae mauris sodales, fringilla augue at, efficitur arcu. Sed ex diam, ullamcorper a auctor eget, volutpat sit amet est. Suspendisse urna eros, ullamcorper in semper at, lobortis eget quam. Fusce auctor, augue sit amet convallis condimentum, diam libero porta lectus, consectetur posuere nisi mi non nulla. Suspendisse vel ante efficitur, eleifend justo sed, lobortis augue. Sed rhoncus neque libero, et tempor ipsum imperdiet id. Integer at purus eget dolor pharetra varius ut et massa. Etiam risus enim, ultrices vitae nisl eu, interdum dignissim tellus. Nullam tellus metus, finibus non justo at, lobortis imperdiet tortor. Nulla nec tortor sagittis, fringilla nisi quis, bibendum leo.
The above is just a sample. The RegEx and Python code would need to read through an entire file writing speakers and their speech as it is found.
The above should yield something like:
<Gutenberg>
<Speaker>Mr. COX</Speaker>
<Speech>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum sollicitudin vestibulum consectetur. Aliquam rhoncus nisl id velit gravida, quis volutpat est eleifend. Donec posuere a magna ac molestie. Vivamus sed lacinia lectus, quis feugiat libero. Nam sapien lacus, hendrerit at posuere ut, ullamcorper sit amet augue. Ut fringilla lobortis nulla. Nulla facilisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur rutrum dictum. Aenean a sem mollis justo scelerisque posuere eget sit amet orci. Praesent condimentum, leo at commodo dapibus, leo mi pretium lectus, et sagittis lorem sapien ut enim. Nulla sagittis varius eros, eget pretium arcu suscipit aliquet. </Speech>
<Speaker>Mr. SEABASS</Speaker>
<Speech>Ut condimentum lobortis suscipit. Donec eget tempor ex, vel porttitor velit. Aliquam vulputate, leo in aliquet laoreet, sem ante dapibus velit, nec imperdiet felis tellus vel leo. Nunc mattis velit sed turpis consectetur tempus. Nam volutpat vel metus sed aliquam. Curabitur vitae elit urna. Nulla vehicula sapien quis libero elementum, vitae sodales tellus commodo. Pellentesque pulvinar felis vitae neque viverra posuere vitae sit amet neque. Curabitur lorem libero, mollis consectetur tempus sit amet, tincidunt vitae dolor. Cras ullamcorper arcu ac orci pharetra consequat. Nunc magna justo, sollicitudin at enim vel, volutpat elementum sapien. Mauris sit amet velit in diam imperdiet tempor facilisis et ex. Praesent consectetur leo a eros mattis tempor.</Speech>
<Speaker>Mr. REX</Speaker>
<Speech>Nullam interdum urna quis nunc sodales, id posuere nisl malesuada. Nam nec lacus et ipsum ultrices pharetra. Nullam vitae mauris sodales, fringilla augue at, efficitur arcu. Sed ex diam, ullamcorper a auctor eget, volutpat sit amet est. Suspendisse urna eros, ullamcorper in semper at, lobortis eget quam. Fusce auctor, augue sit amet convallis condimentum, diam libero porta lectus, consectetur posuere nisi mi non nulla. Suspendisse vel ante efficitur, eleifend justo sed, lobortis augue. Sed rhoncus neque libero, et tempor ipsum imperdiet id. Integer at purus eget dolor pharetra varius ut et massa. Etiam risus enim, ultrices vitae nisl eu, interdum dignissim tellus. Nullam tellus metus, finibus non justo at, lobortis imperdiet tortor. Nulla nec tortor sagittis, fringilla nisi quis, bibendum leo. </Speech>
</Gutenberg>
Now I already have the RegEx that takes care of finding the speakers. However, I am having difficulty matching the speeches to the speaker. Also the speeches and speakers will be different, not the same three speakers or speeches. So the RegEx will need to be flexible.
This question is not a duplicate as the other question in reference is for a movie script and this is for project gutenberg eBooks.