1. ホーム
  2. パイソン

[解決済み】2つのマーカー間の部分文字列を抽出する方法は?

2022-03-24 16:25:12

質問

例えば、次のような文字列があるとします。 'gfgfdAAA1234ZZZuijjk' を抽出し、その中から '1234' の部分があります。

の直前の数文字が何になるのかだけ知っています。 AAA の後、および ZZZ 気になる部分 1234 .

sed を使うと、文字列でこのようなことが可能です。

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

そして、これによって 1234 を結果的に表示します。

同じことをPythonで行うには?

どのように解決するのですか?

正規表現を使用する ドキュメント 参考

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