2つのマーカー間の部分文字列を抽出するにはどうすればいいですか? 質問する

2つのマーカー間の部分文字列を抽出するにはどうすればいいですか? 質問する

文字列があり'gfgfdAAA1234ZZZuijjk'、その部分だけを抽出したいとします'1234'

私が知っているのは、興味のある部分の直前AAAと直後の数文字だけです。ZZZ1234

これを使用すると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

おすすめ記事