How do I return a string from a regex match in python? [duplicate]
I am running through lines in a text file using a python
script.
I want to search for an img
tag within the text document and return the tag as text.
When I run the regex re.match(line)
it returns a _sre.SRE_MATCH
object.
How do I get it to return a string?
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))
When run it prints:
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
Solution 1:
You should use re.MatchObject.group(0)
. Like
imtag = re.match(r'<img.*?>', line).group(0)
Edit:
You also might be better off doing something like
imgtag = re.match(r'<img.*?>',line)
if imtag:
print("yo it's a {}".format(imgtag.group(0)))
to eliminate all the None
s.
Solution 2:
imgtag.group(0)
or imgtag.group()
. This returns the entire match as a string. You are not capturing anything else either.
http://docs.python.org/release/2.5.2/lib/match-objects.html