Let's say I have a string
'gfgfdAAA1234ZZZuijjk' and I want to extract just the
I only know what will be the few characters directly before
AAA, and after
ZZZ the part I am interested in
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?
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
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
>>> s = 'gfgfdAAA1234ZZZuijjk' >>> start = s.find('AAA') + 3 >>> end = s.find('ZZZ', start) >>> s[start:end] '1234'
Then you can use regexps with the re module as well, if you want, but that's not necessary in your case.