下面的代码用于查找给定字符串的电子邮件地址。但当我打印出来时,它只给出了内存位置。那么如何在下面的代码中获得值呢?我使用的是python2.7。我认为下面的代码是用Python3编写的。你知道吗
import re
emails = '''
CoreyMSchafer@gmail.com
corey.schafer@university.edu
corey-321-schafer@my-work.net
'''
pattern = re.compile(r'[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+')
matches = pattern.finditer(emails)
for match in matches:
print match
资料来源:https://github.com/CoreyMSchafer/code_snippets/blob/master/Python-Regular-Expressions/simple.py
您正在打印match对象本身的表示形式,这对调试更有用。在Python2中,没有在表示上做太多的工作,它只打印对象类型和地址:
在我的Python3版本中,我得到了一个更好的打印输出,可能是时候迁移到Python3了……:
无论如何,您要打印捕获的主组:
结果:
注意,您通常应该在访问
group
之前测试if match is not None:
(在re.match
不匹配的情况下),但是由于结果是由finditer
创建的,因此可以保证您得到的是匹配对象,而不是None
相关问题 更多 >
编程相关推荐