如何在一些字符后提取字符串

时间:2017-07-08 19:07:13

标签: python string

我需要在部分之间提取:

TextInputLayout

我需要得到"当然 - 单身"从上面的字符串。

4 个答案:

答案 0 :(得分:3)

链接几个str.split来电:

test = "http://localhost:8080/course-single.html"

test.rsplit('/', 1)[-1].split('.')[0]
# 'course-single'

<强>详情
首先,在最后/之后获取所有内容:

temp = test.rsplit('/', 1)[-1]
temp
# 'course-single.html'

接下来,获取.html部分之前的所有内容:

temp = temp.split('.')
temp
# ['course-single', 'html']

temp[0]
# 'course-single'

答案 1 :(得分:2)

使用Python 3,使用urllib模块,然后从你想要的结果“路径”中删除你不想要的部分:

>>> from urllib.parse import urlparse
>>> url_str = "http://localhost:8080/course-single.html"
>>> urlparse(url_str).path.split('.')[0][1:]
'course-single'

详细信息:

urlparse(url_str)将产生:

ParseResult(
    scheme='http', netloc='localhost:8080', path='/course-single.html', 
    params='', query='', fragment=''
)

因此,您提取path

urlparse(url_str).path:获取:'/course-single.html'

然后你需要删除你不感兴趣的部分,split .['/course-single', 'html']会给你[0]。因此,只需访问第一项([1:]),删除带有course-single切片的第一个斜杠,即可获得>>> url_str = "http://localhost:8080/a/b/c/course-single.html" >>> urlparse(url_str) ParseResult(scheme='http', netloc='localhost:8080', path='/a/b/c/course-single.html', params='', query='', fragment='') >>> urlparse(url_str).path.rsplit('/', 1)[-1].split('.')[0] 'course-single' 的最终结果。

多个斜杠

如果您的网址较长,并且您需要最后一部分,那么您可以执行以下操作,它应该适用于您提供的任何长度网址:

meteor run

答案 2 :(得分:0)

使用正则表达式:

word = re.search('\d/(.*?)\.html', test)
print word.groups()[0]

输出:

course-single

答案 3 :(得分:-2)

您可以使用:

test="http://localhost:8080/course-single.html"
str = test[test.find('8080/') + 5: test.find('.html')]
print str

详细说明:
test.find('8080/') - 找到8080/字符串所在的位置(+ 5因为我们只对字符串感兴趣,所以在下一行)。
test.find('.html') - 找到.html所在的位置 test[test.find('8080/') + 5: test.find('.html')] - 在这两个找到的字符串之间获取字符串。