Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python正则表达式从字符串中提取多个模式?_Python_Regex - Fatal编程技术网

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

如何使用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:已

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


和它的一些变体。但它不起作用。什么是正确的方法呢?

在这里使用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')]