sfdc_url= 'https://unify.my.salesforce.com/a0n82000006VlNaPPP'
sfdc_partnerid= re.findall(r'https://unify.my.salesforce.com/(.*?)?sr',sfdc_url)
我希望sfdc_partnerid返回“ a0n82000006VlNaPPP”
我不断得到空的[]结果。
答案 0 :(得分:0)
给出您的网址,可以使用的正确正则表达式为:
sfdc_url= 'https://unify.my.salesforce.com/a0n82000006VlNaPPP'
sfdc_partnerid = re.findall(r'https://unify.my.salesforce.com/(.*)', sfdc_url)
print sfdc_partnerid
也在https://eval.in/1078060上进行检查
关于量词:
*?
是一个懒惰的量词,并且匹配尽可能少的字符
(.*?)
的有效含义是“将零到无限之间的任何内容匹配到尽可能少的次数”,该值为空。
在此之后添加?
表示“零或前一个匹配项”,因此:
(.*?)?
实际上表示“零或一无所有”
我不确定原始正则表达式中剩余的sr
答案 1 :(得分:0)
如果您使用的是python3,也可以查看urllib.parse
例如
from urllib import urlparse
result = urlparse("https://unify.my.salesforce.com/a0n82000006VlNaPPP")
result.path