python - 拆分 SSH 样式的用户@域/路径?
问题描述
我有类似我们在ssh
/中输入的 URL rsync
:
s1 = 'user1@1.2.3.4/home/test/blabla'
s2 = 'user2@example.com/home/test/blabla'
这是让用户、域、路径适用于所有类型的 URL 的可靠方法吗:
user = s1.split('@')[0]
domain = s1.split('@')[1].split('/')[0]
path = s1.split('@')[1].split('/')[1]
还是有更好的方法,包含在 Python 标准库中?
注意:似乎有不同的标准化,请参阅ssh:// 的 URL 格式。
解决方案
您可以使用正则表达式:
import re
s1 = 'user1@1.2.3.4/home/test/blabla'
user = re.search(r'^(.+?)(?=\@)', s1).group()
domain = re.search(r'(?<=\@)(.+?)(?=\/)', s1).group()
path = re.search(r'/(.+?)$', s1).group()
print(user) # user1
print(domain) # 1.2.3.4
print(path) # /home/test/blabla
推荐阅读
- angular - 如何使用 Angular 表单创建可编辑的 primeNG 表?
- wordpress - 提交评论导航到WordPress中的空白页面
- android - 将 Firebase 数据转换为格式化的 Google 表格
- javascript - Vuetify 菜单组件自动属性未正确居中菜单项
- java - 程序类型已存在:com.google.android.gms.location.places.zza
- javascript - let in for 循环只执行一次的问题
- django - 不能同时设置 `read_only` 和 `write_only`
- mysql - MySQL - 如何在 SELECT 查询中使用 ENCLOSED BY?
- python - TensorFlow:来自 Gumbel Softmax 的样本整数
- javascript - 有没有办法像我们在 python 中对 list 一样访问减号索引数组元素?