Regex 使用正则表达式提取URL的一部分
我正在尝试使用正则表达式来提取一些URL的特定部分,这些URL有不同的变体。 以下是通用格式:Regex 使用正则表达式提取URL的一部分,regex,Regex,我正在尝试使用正则表达式来提取一些URL的特定部分,这些URL有不同的变体。 以下是通用格式: http://www.blackpages.com/cityName-StateName/mip/part-I-want-to-extract/randomCharacters 有时“mip”部分不存在,URL如下所示: http://www.blackpages.com/cityName-StateName/part-I-want-to-extract/randomCharacters 我开始写
http://www.blackpages.com/cityName-StateName/mip/part-I-want-to-extract/randomCharacters
有时“mip”部分不存在,URL如下所示:
http://www.blackpages.com/cityName-StateName/part-I-want-to-extract/randomCharacters
我开始写以下内容:
re.compile("blackpages\.com/.*")
*
匹配任何字符,现在,当我遇到“/”时,如何停止,并在遇到下一个“/”之前提取后面的所有内容?这将给我我想要提取的部分 您需要使用否定字符类:
re.compile(r"blackpages\.com/([^/]*)")
^^^^
[^/]*
将尽可能多地(贪婪地)匹配0+个字符,而不是/
如果您希望在/
之后至少有一个字符,请使用+
量词(1次或多次出现)而不是*
见
:
输出:
cityName-StateName
cityName-StateName
难道你不应该用捕获组来提取那一部分吗?拉凯什,还有其他问题吗?请在我的答案下面写一行。
cityName-StateName
cityName-StateName