I would like to use a regular expression that matches any text between two strings:
Part 1. Part 2. Part 3 then more text
In this example, I would like to search for "Part 1" and "Part 3" and then get everything in between which would be: ". Part 2. "
I'm using Python 2x.
$ means "Match the end of the string" (the position after the last character in the string).
So use \s\S, which will match ALL characters.
Use re.search
>>> import re >>> s = 'Part 1. Part 2. Part 3 then more text' >>> re.search(r'Part 1\.(.*?)Part 3', s).group(1) ' Part 2. ' >>> re.search(r'Part 1(.*?)Part 3', s).group(1) '. Part 2. '
Or use re.findall
, if there are more than one occurances.
With regular expression:
>>> import re >>> s = 'Part 1. Part 2. Part 3 then more text' >>> re.search(r'Part 1(.*?)Part 3', s).group(1) '. Part 2. '
Without regular expression, this one works for your example:
>>> s = 'Part 1. Part 2. Part 3 then more text' >>> a, b = s.find('Part 1'), s.find('Part 3') >>> s[a+6:b] '. Part 2. '
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