繁体   English   中英

如何使用Python正则表达式从字符串中提取多个模式?

[英]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,我想从中提取两件事。

  1. PRODUCTNAME:始终以https://epolicy.companyname.co.in开头

  2. * .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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM