[英]How to extract more than one patterns from a string using Python Regular Expressions?
https://epolicy.companyname.co.in/PRODUCTNAME/UI/PremiumCalculation.aspx?utm_source=rtb&utm_medium=display&utm_campaign=dbmew-Category-pros&dclid=CO2g3u7Gy98CFUOgaAodUv4E0w
我有数百万个此类URL,我想从中提取两件事。
PRODUCTNAME:始终以https://epolicy.companyname.co.in
开头
* .aspx:已访问页面
我尝试了以下正则表达式
re.findall('([a-zA-Z]+\\.aspx | https://epolicy\\.companyname\\.co\\.in/(.*?)/UI)', URL)
及其一些变体。 但这没有用。 这样做的正确方法是什么?
尝试这个 !
代码:
import re
url = "https://epolicy.companyname.co.in/PRODUCTNAME/UI/PremiumCalculation.aspx?utm_source=rtb&utm_medium=display&utm_campaign=dbmew-Category-pros&dclid=CO2g3u7Gy98CFUOgaAodUv4E0w"
print(re.findall('https://[^/]*/(.*)/UI/(.*).aspx', url))
输出:
[('PRODUCTNAME', 'PremiumCalculation')]
正则表达式似乎根本不是在这里使用的正确方法。 而是解析URL,分割路径,并获取第一个和最后一个元素。
from urllib.parse import urlparse
from pathlib import PurePath
components = urlparse(url)
path = PurePath(url.path)
product_name = path.parts[1]
page = path.stem
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.