如何使用Python正则表达式从字符串中提取多个模式?
https://epolicy.companyname.co.in/PRODUCTNAME/UI/PremiumCalculation.aspx?utm_source=rtb&utm_medium=display&utm_campaign=dbmew-类别pros&dclid=CO2G3U7GY98CFUOGAODUV4E0W 我有数百万个这样的URL,我想从中提取两样东西 PRODUCTNAME:始终在前面加上https://epolicy.companyname.co.in *.aspx:已访问页面 我尝试了以下正则表达式 关于findall'[a-zA-Z]+\.aspx|https://epolicy\.companyname\.co\.位于/*?/UI',URL如何使用Python正则表达式从字符串中提取多个模式?,python,regex,Python,Regex,https://epolicy.companyname.co.in/PRODUCTNAME/UI/PremiumCalculation.aspx?utm_source=rtb&utm_medium=display&utm_campaign=dbmew-类别pros&dclid=CO2G3U7GY98CFUOGAODUV4E0W 我有数百万个这样的URL,我想从中提取两样东西 PRODUCTNAME:始终在前面加上https://epolicy.companyname.co.in *.aspx:已
和它的一些变体。但它不起作用。什么是正确的方法呢?在这里使用Regex似乎根本不合适。相反,解析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
试试这个
代码:
输出:
你试过分开运行吗?注意|两侧的空格都有意义。另外,请参见
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')]