我是python中的新手。我有两种不同的网址格式:
url_format_1 = 'https://www.facebook.com/facebook/posts/10151927580276729'
# and
url_format_2 = 'https://www.facebook.com/photo.php?fbid=10151496277356729&set=a.10150629589136729.412063.20531316728&type=1'
我想要的是获得id
。第一种格式当然是10151927580276729
,第二种是10151496277356729
。
我想检测是否使用了第一种或第二种格式,然后继续并获取ID。
答案 0 :(得分:0)
对于第一种格式,您可以使用简单的split()
。对于第二种格式,我建议使用正则表达式。
要检测您正在处理的格式,您可以先尝试使用正则表达式。如果抛出异常,请继续并尝试使用split()
。
import re
urls = [
'https://www.facebook.com/facebook/posts/10151927580276729',
'https://www.facebook.com/photo.php?fbid=10151496277356729&set=a.10150629589136729.412063.20531316728&type=1',
]
for u in urls:
try:
print re.search(r'fbid=([0-9]+)', u).group(1)
except:
print u.split('/')[-1]
输出:
10151927580276729
10151496277356729