Python 在两个'/';使用re模块

Python 在两个'/';使用re模块,python,regex,python-2.7,Python,Regex,Python 2.7,我需要从URL路径中提取一些文本,但我对正则表达式知之甚少 import re url = '/s/GETTHISDATA/canBeIgnored/canBeIgnored' myData = #needs to equal GETTHISDATA 看看这个: >>> import re >>> url = '/s/GETTHISDATA/canBeIgnored/canBeIgnored' >>> re.findall('(?<

我需要从URL路径中提取一些文本,但我对正则表达式知之甚少

import re

url = '/s/GETTHISDATA/canBeIgnored/canBeIgnored'
myData = #needs to equal GETTHISDATA
看看这个:

>>> import re
>>> url = '/s/GETTHISDATA/canBeIgnored/canBeIgnored'
>>> re.findall('(?<=/).*?(?=/)', url)
['s', 'GETTHISDATA', 'canBeIgnored']
>>> re.findall('(?<=/).*?(?=/)', url)[1]
'GETTHISDATA'
>>>
然而,一个更干净、非正则表达式的解决方案是在
/
上拆分:

>>> url.split('/')
['', 's', 'GETTHISDATA', 'canBeIgnored', 'canBeIgnored']
>>> url.split('/')[2]
'GETTHISDATA'
>>>

就我个人而言,我会使用第二种解决方案。正则表达式在这里似乎有些过分了。

url.split(“/”[2]
url
是字符串吗?如果是这样,请在它周围加引号。你总是需要第二级目录吗?是什么将
GETTHISDATA
canBeIgnored
。。。在这种情况下,你至少会得到两个结果,尽管正确的结果仍然是第一个…这是一个很好的观点。我改变了我的代码结构,以捕获2/之间的内容。说实话,我只是给出了正则表达式的解决方案,因为OP要求正则表达式。我真正的答案是使用
str.split
>>> url.split('/')
['', 's', 'GETTHISDATA', 'canBeIgnored', 'canBeIgnored']
>>> url.split('/')[2]
'GETTHISDATA'
>>>