How to get the string between two points using regex or any other library in Python 3?
For eg: Blah blah ABC the string to be retrieved XYZ Blah Blah
ABC and XYZ are variables which denote the start and end of the string which I have to retrieve.
Use ABC
and XYZ
as anchors with look-behind and look-ahead assertions:
(?<=ABC).*?(?=XYZ)
The (?<=...)
look-behind assertion only matches at the location in the text that was preceded by ABC
. Similarly, (?=XYZ)
matches at the location that is followed by XYZ
. Together they form two anchors that limit the .*
expression, which matches anything.
You can find all such anchored pieces of text with re.findall()
:
for matchedtext in re.findall(r'(?<=ABC).*?(?=XYZ)', inputtext):
If ABC
and XYZ
are variable, you want to use re.escape()
(to prevent any of their content from being interpreted as regular expression syntax) on them and interpolate:
re.match(r'(?<={}).*?(?={})'.format(abc, xyz), inputtext)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With