我需要在部分之间提取:
TextInputLayout
我需要得到"当然 - 单身"从上面的字符串。
答案 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')]
- 在这两个找到的字符串之间获取字符串。