如何使用Python中的Regex / Strip()在String的末尾删除随机字符?

时间:2017-07-25 07:37:58

标签: python regex python-2.7 random strip

在Python中剪切字符串末尾的随机字符的首选方法是什么?

我正在尝试简化网址列表以进行某些分析,因此需要切断文件扩展名.php之后的所有内容

由于.php之后的字符对于使用strip()的每个URL都不同,因此不起作用。我想到了正则表达式和substring()。但是解决这个任务最有效的方法是什么?

示例:

假设我有以下网址:

example.com/index.php?random_var=random-19wdwka
example.org/index.php?another_var=random-2js9m2msl

我希望输出为:

example.com/index.php
example.org/index.php

感谢您的建议!

4 个答案:

答案 0 :(得分:1)

有两种方法可以达到你想要的效果。

如果您知道字符串的结束方式:

在您的示例中,如果您知道字符串以.php?结尾,那么您需要做的就是:

my_string.split('?')[0]

如果您不知道字符串是如何结束的:

在这种情况下,您可以使用urlparse并获取除参数之外的所有内容。

from urlparse import urlparse

for url is urls:
    p = urlparse(url)
    print p.scheme + p.netloc + p.path

答案 1 :(得分:0)

for url in urls:
    result = url.split('?')[0]
    print(result)

答案 2 :(得分:0)

最多在分隔符上拆分一次,然后取出第一块:

 text="example.com/index.php?random_var=random-19wdwka"
 sep="php"
 rest = text.split(sep)[0]+".php"
 print rest

答案 3 :(得分:0)

看起来你真正想要的是去除URL的参数,你也可以使用

from urlparse import urlparse, urlunparse

urlunparse(urlparse(url)[:3] + ('', '', ''))

用空字符串替换URL的params,查询和片段部分并生成一个新字符串。