在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
感谢您的建议!
答案 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,查询和片段部分并生成一个新字符串。