1. ホーム
  2. python

[解決済み] pythonで正規表現にマッチした文字列を返すには?重複

2023-03-29 15:54:33

質問

テキストファイルの行を走査するために python スクリプトを使用しています。 を検索したい。 img タグを検索し、そのタグをテキストとして返したい。

正規表現を実行すると re.match(line) を返すと _sre.SRE_MATCH オブジェクトを返します。 どうすれば文字列を返すようになるのでしょうか?

import sys
import string
import re

f = open("sample.txt", 'r' )
l = open('writetest.txt', 'w')

count = 1

for line in f:
    line = line.rstrip()
    imgtag  = re.match(r'<img.*?>',line)
    print("yo it's a {}".format(imgtag))

実行すると印刷されます。

yo it's a None
yo it's a None
yo it's a None
yo it's a <_sre.SRE_Match object at 0x7fd4ea90e578>
yo it's a None
yo it's a <_sre.SRE_Match object at 0x7fd4ea90e578>
yo it's a None
yo it's a <_sre.SRE_Match object at 0x7fd4ea90e578>
yo it's a <_sre.SRE_Match object at 0x7fd4ea90e5e0>
yo it's a None
yo it's a None

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

この場合 re.MatchObject.group(0) . のように

imtag = re.match(r'<img.*?>', line).group(0)

編集する

また、以下のようにしたほうがいいかもしれません。

imgtag  = re.match(r'<img.*?>',line)
if imtag:
    print("yo it's a {}".format(imgtag.group(0)))

をすべて削除して None s.