python - 使用正则表达式检索字符串的子集 - python
问题描述
p = "\home\gef\Documents\abc_this_word_dfg.gz.tar"
我正在寻找一种方法来检索this_word
.
base = os.path.basename(p)
base1 = base.replace("abc_","")
base1.replace("_dfg.gz.tar","")
这行得通,但这并不理想,因为我需要提前知道要删除哪些字符串。也许 aregex
在这里合适?
解决方案
您没有提供太多信息,但是从所显示的内容中您不能仅按_
字符拆分吗?
也许是这样的:
>>> p = os.path.join('home', 'gef', 'Documents', 'abc_this_word_dfg.gz.tar')
>>> p
'home/gef/Documents/abc_this_word_dfg.gz.tar'
>>> os.path.dirname(p)
'home/gef/Documents'
>>> os.path.basename(p)
'abc_this_word_dfg.gz.tar'
>>> '_'.join(
... os.path.basename(p).split('_')[1:-1])
'this_word'
它用下划线分割,然后丢弃第一个和最后一个部分,最后用下划线将其他部分连接在一起(如果this_word
没有下划线,那么将只剩下一个部分,不会进行连接)。
推荐阅读
- flutter - 重新思考用于颤振飞镖的更改提要
- elasticsearch - elasticsearch映射解析器异常
- vbscript - 如何修复 XSS 攻击
- reactjs - React 测试库 - 如何设置状态变量的初始值
- powerbi - 使用 SAMEPERIODLASTYEAR 时雪模式出现问题?
- javascript - 变量无法存储数据Javascript
- r - 在分解的 x 轴上绘制 geom_vline()
- android - 重复资源 google_app_id google_app_key
- android - RecyclerView 不显示结果
- node.js - 使用节点代理将 HTTP 数据保存到文件