How to extract the substring between two markers?
Posted By: Anonymous
Let’s say I have a string 'gfgfdAAA1234ZZZuijjk'
and I want to extract just the '1234'
part.
I only know what will be the few characters directly before AAA
, and after ZZZ
the part I am interested in 1234
.
With sed
it is possible to do something like this with a string:
echo "$STRING" | sed -e "s|.*AAA(.*)ZZZ.*|1|"
And this will give me 1234
as a result.
How to do the same thing in Python?
Solution
Using regular expressions – documentation for further reference
import re
text = 'gfgfdAAA1234ZZZuijjk'
m = re.search('AAA(.+?)ZZZ', text)
if m:
found = m.group(1)
# found: 1234
or:
import re
text = 'gfgfdAAA1234ZZZuijjk'
try:
found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
# AAA, ZZZ not found in the original string
found = '' # apply your error handling
# found: 1234
Answered By: Anonymous
Disclaimer: This content is shared under creative common license cc-by-sa 3.0. It is generated from StackExchange Website Network.