在Python中剥离URL

时间:2015-10-06 09:24:28

标签: python regex url strip

我对python很新。我正在尝试解析URL文件,只留下URL的特定部分(粗体部分)。

以下是我正在使用的URL的一些示例:

-webkit-transform: skew(-45deg);
-webkit-transform-origin: left top 0;

我尝试了一些正则表达式,但它变得非常复杂。我想到的是从所有网址中删除此“http://www.mega.pk/”,因为它很常见,然后删除“ - ”之后的任何内容,包括所有斜杠。但是不知道这样做。

5 个答案:

答案 0 :(得分:3)

使用re.sub

re.sub(r'^.*\/([^/]*)-.*', r'\1', line)

DEMO

示例:

>>> s = '''http://www.mega.pk/washingmachine-dawlance/
    http://www.mega.pk/washingmachine-haier/'''.splitlines()
>>> for line in s:
    print(re.sub(r'^.*\/([^/]*)-.*', r'\1', line))


washingmachine
washingmachine
>>> 

答案 1 :(得分:2)

使用urlparse模块。它是专门为此目的而构建的。

from urlparse import urlparse

url = "http://www.mega.pk/washingmachine-dawlance/"

path = urlparse(url).path  # get the path from the URL ("/washingmachine-dawlnace/")
path = path[:path.index("-")]  # remove everything after the '-' including itself
path = path[1:]  # remove the '/' at the starting of the path (just before 'washing')

path变量的值为washingmachine

请查看此内容(urlparse Python module of the week)以获取更多信息。

干杯!

答案 2 :(得分:1)

您可以在不使用正则表达式的情况下实现相同目的。 Avinash提出的解决方案更简洁,但下面的方法可能更容易理解,特别是如果你想在某个时候修改它:

s = '''http://www.mega.pk/washingmachine-dawlance/
http://www.mega.pk/washingmachine-haier/'''.splitlines()
for line in s:    
   cleanedUrl = line.replace('http://www.mega.pk/**','').replace('/','')
   urlParameters = cleanedUrl.split('-')
   print urlParameters[-1]

或者如果您愿意,可以使用compacter版本:

s = '''http://www.mega.pk/washingmachine-dawlance/
http://www.mega.pk/washingmachine-haier/'''.splitlines()
for line in s:    
    print line.replace('http://www.mega.pk/**','').replace('/','').split('-')[-1]

答案 3 :(得分:1)

您还可以使用以下正则表达式:

>>> import re
>>> regex = r"(?is)^\s*https?\:\/\/[^\/]+\/(.*?)(?:\-|\/).*"
>>> res = re.sub(regex, r"\1", PROVIDE_URL)

你会得到欲望的结果。

答案 4 :(得分:0)

与lambda函数一起使用re.sub:

p