我正在使用Jupyter笔记本中的python从网上提取一些数据。我已经下载了数据,解析并创建了数据框。我需要从数据框中的字符串中提取一个数字。我利用这个正则表达式来做到这一点:
for note in df["person_notes"]:
print(re.search(r'\d+', note))
结果如下:
<_sre.SRE_Match object; span=(53, 55), match='89'>
我怎样才能获得匹配号码;在这一行中将是89.我尝试将整行转换为str()
和replace()
,但并非所有行都有span=(number, number)
iqual。提前谢谢!
答案 0 :(得分:3)
您可以在返回的匹配对象上使用start()
和end()
方法来获取字符串中的正确位置:
for note in df["person_notes"]:
match = re.search(r'\d+', note)
if match:
print(note[match.start():match.end()])
else:
# no match found ...