如何使用Python正则表达式获取正斜杠中间的字符

2024-09-28 22:25:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串:https://app.redretarget.com/sapp/ptag/jxy666.myshopify.com。你知道吗

如何使用Python正则表达式获取正斜杠中间的字符?你知道吗

我想得到:['app.redretarget.com','sapp','ptag','jxy666.myshopify.com']

当我使用:

cmd = 'https://app.redretarget.com/sapp/ptag/jxy666.myshopify.com'
pin_url = re.compile(r'/(.*?)/{0,1}')
print pin_url.findall(cmd)

我出错了。你知道吗


Tags: 字符串httpsrecmdcomappurlpin
3条回答

我提议分两次

cmd.split('//', 1)[1].split('/')

['app.redretarget.com', 'sapp', 'ptag', 'jxy666.myshopify.com']

您可以通过“/”使用split。我正在使用filter删除列表中的空元素。你知道吗

string ='https://app.redretarget.com/sapp/ptag/jxy666.myshopify.com'
print filter(None, string.split("/"))

输出:

['https:', 'app.redretarget.com', 'sapp', 'ptag', 'jxy666.myshopify.com']

可以使用^{}^{}代替regex:

from urllib.parse import urlparse
from pathlib import Path

cmd = 'https://app.redretarget.com/sapp/ptag/jxy666.myshopify.com'
parsed = urlparse(cmd)
parts = (parsed.netloc, ) + Path(parsed.path).parts[1:]
print(parts)  # ('app.redretarget.com', 'sapp', 'ptag', 'jxy666.myshopify.com')

注意,urlparse还可以解析更复杂的url;在您的例子中,urlparse的结果是

print(parsed)
# ParseResult(scheme='https', netloc='app.redretarget.com', 
#             path='/sapp/ptag/jxy666.myshopify.com', params='', query='',
#             fragment='')

相关问题 更多 >