如何提取两个标记之间的子字符串?

问题描述

使用正则表达式 -文档供进一步参考

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

解决方法

假设我有一个字符串'gfgfdAAA1234ZZZuijjk',我只想提取'1234'部分。

我只知道在我感兴趣的部分之前AAA和之后的几个字符会是什么。ZZZ``1234

可以用sed字符串做这样的事情:

echo "$STRING" | sed -e "s|.*AAA\(.*\)ZZZ.*|\1|"

这将给我1234一个结果。

如何在 Python 中做同样的事情?