从含日期与品牌的URL中提取Model和VIN的正则优化需求
问题:从URL中提取完整Model和VIN
需要从指定URL中提取完整Model(如2021-Mercedes-Benz-Sprinter+2500)和VIN(如286f67180a0e09a8729929613aac3877),示例URL包括:
/used/Mercedes-Benz/2021-Mercedes-Benz-Sprinter+2500-286f67180a0e09a8729929613aac3877.htm/used/Audi/2015-Audi-SQ5-286f67180a0e09a8729929613aac3877.htm
已尝试的方案
正则表达式
# model_pattern = r'\d{4}\-([^/]+)\-' model_pattern = r'[-]([^/]+)\-'
执行代码
Clean_Make["Model"] = Clean_Make["Page"].str.extract(model_pattern) Clean_Make
当前问题
提取出的Model缺失年份部分,结果示例(截取部分表格):
Page City Pageviews Unique Pageviews Avg. Time on Page Entrances Bounce Rate % Exit Make1 Make2 Make Model 71 /used/Mercedes-Benz/2021-Mercedes-Benz-Sprinte... San Jose 310 149 00:00:27 149 2.00% 47.74% Mercedes-Benz Mercedes-Benz Mercedes-Benz Mercedes-Benz-Sprinter+2500 103 /used/Audi/2015-Audi-SQ5-286f67180a0e09a872992... Menlo Park 250 87 00:02:36 82 0.00% 32.40% Audi Audi Audi Audi-SQ5 158 /used/Mercedes-Benz/2021-Mercedes-Benz-Sprinte... San Francisco 202 98 00:00:18 98 2.04% 48.02% Mercedes-Benz Mercedes-Benz Mercedes-Benz Mercedes-Benz-Sprinter+2500 165 /used/Audi/2020-Audi-S8-c6df09610a0e09af26b5cf... San Francisco 194 93 00:00:42 44 2.22% 29.38% Audi Audi Audi Audi-S8 168 /used/Mercedes-Benz/2021-Mercedes-Benz-Sprinte... (not set) 192 91 00:00:11 91 2.20% 47.40% Mercedes-Benz Mercedes-Benz Mercedes-Benz Mercedes-Benz-Sprinter+2500 ... ... ... ... ... ... ... ... ... ... ... ... ... 4995 /used/Subaru/2019-Subaru-Crosstrek-5717b3040a0... Union City 10 3 00:02:02 0 0.00% 30.00% Subaru Subaru Subaru Subaru-Crosstrek 4996 /used/Tesla/2017-Tesla-Model+S-15605a190a0e087... San Jose 10 5 00:01:29 5 0.00% 50.00% Tesla Tesla Tesla Tesla-Model+S
优化后的正则表达式与代码
使用包含两个捕获组的正则表达式,可同时提取完整Model和VIN:
pattern = r'/used/[^/]+/(\d{4}-[^-]+)-([0-9a-f]+)\.htm'
- 第一个捕获组
(\d{4}-[^-]+):匹配以4位年份开头、到下一个-为止的所有字符,得到包含年份的完整Model - 第二个捕获组
([0-9a-f]+):匹配由数字和小写字母组成的VIN字符串
执行提取代码:
Clean_Make[['Full Model', 'VIN']] = Clean_Make["Page"].str.extract(pattern) Clean_Make
提取结果示例:
| Full Model | VIN |
|---|---|
| 2021-Mercedes-Benz-Sprinter+2500 | 286f67180a0e09a8729929613aac3877 |
| 2015-Audi-SQ5 | 286f67180a0e09a8729929613aac3877 |
内容的提问来源于stack exchange,提问作者Anastasia Sukhorebraya_Beck
相关产品推荐
相关产品推荐

