gpt4 book ai didi

python - 匹配所有内容直到可选字符串(Python 正则表达式)

转载 作者:太空宇宙 更新时间:2023-11-04 08:01:41 25 4
gpt4 key购买 nike

我已经为这个问题绞尽脑汁,似乎我遗漏了一些非常微不足道的东西,所以提前道歉。我有一个 url,它可能包含也可能不包含一些 POST 值。我想匹配整个 url 直到这个可选部分(不包括在内)。例如:

import re
myurl = r'http://myAddress.com/index.aspx?cat=ThisPartChanges&pageNum=41'
matchObj = re.match(r'(.*?)(&pageinfo=\d+){0,1}', myurl)
print matchObj.groups()
>> ('', None)

# Putting the non-greedy ? outside
matchObj = re.match(r'(.*)?(&pageinfo=\d+){0,1}', myurl)
print matchObj.groups()
>> ('http://myAddress.com/index.aspx?cat=ThisPartChanges&pageNum=41', None)

# The url might also be without the last part, that is
myurl = r'http://myAddress.com/index.aspx?cat=ThisPartChanges'
# I'd like the regex to capture the first part. "ThisPartChanges" might
# be different every time

我想要的是获取 pageNum=\d+ 之前的所有内容,不包括在内。也就是

http://myAddress.com/index.aspx?cat=ThisPartChanges

我只对 &pageNum 之前的部分感兴趣,并不关心它是否存在,只是想以某种方式将其过滤掉,以便我可以获得真实地址,直到 cat=....

我尝试过各种非贪婪技巧,但让我失望的部分是第二部分是可选的,因此没有什么可以“锚定”非贪婪匹配。任何想法如何优雅地做到这一点?只有第一部分很重要。也欢迎使用非正则表达式解决方案

谢谢!

最佳答案

你可能想看看https://docs.python.org/2/library/urlparse.html

传递参数的顺序可能会改变:

?pageNum=41&cat=ThisPartChanges

关于python - 匹配所有内容直到可选字符串(Python 正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38954311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com