Допустим, у меня есть строка 'gfgfdAAA1234ZZZuijjk' и я хочу извлечь только '1234' часть.
Я знаю только, какими будут несколько символов непосредственно перед AAA и после ZZZ интересующей меня части 1234.
С помощью sed можно сделать что-то подобное со строкой:
echo "$STRING" | sed -e "s|.*AAA\(.*\)ZZZ.*|\1|"
И это даст мне 1234 в результате.
Как сделать то же самое в Python?
Переведено автоматически
Ответ 1
Использование регулярных выражений - документация для дальнейшего использования
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
Ответ 2
>>> s = 'gfgfdAAA1234ZZZuijjk' >>> start = s.find('AAA') + 3 >>> end = s.find('ZZZ', start) >>> s[start:end] '1234'
Затем вы также можете использовать регулярные выражения с модулем re, если хотите, но в вашем случае в этом нет необходимости.