python - python 正则表达式提取字符之间的字符串
问题描述
我有一个字符串:
x = "abc/xyz/foo/bar/foobar.mp3"
如何从中提取 foobar?
我是这样做的:
import re
re.search(r'\/[a-z]+.mp3', x)
虽然,我不知道如何在没有 '.' 的情况下提取匹配的字符串。并且没有'.mp3'。
我不想做 Python 拆分、rplist、分区等,因为它增加了额外的功能。我希望它尽可能简单和简短。
编辑:
- 是的,这是一条路径。
- 我不知道路径的长度。
- 如前所述,我不想使用拆分。
解决方案
匹配非斜线,然后向前看\.mp3$
:
re.search(r'[^/]+(?=\.mp3$)', x)
确保.
用反斜杠转义,否则它将匹配任何字符。
推荐阅读
- git - prettify 上游运行后如何合并代码
- python-3.x - ImportError:无法导入名称“UsersClient”
- openpgp - 无法使用 OpenPGP.js 对 Excel 文件进行 PGP 加密/解密
- amazon-web-services - AWS 防止盗链的政策
- java - 如何按枚举顺序排序java
- ruby-on-rails - Ruby On Rails - 找到具有大多数(有很多)关联的对象的最佳方法是什么?
- internationalization - NextJS10:“vi”语言代码的 i18n 路由未应用
- listview - 在数据网格视图的单元格中添加 Listview 项
- asp.net - 如何在控制器的存储库方法中将模型作为参数传递?
- android - 在 Kotlin 中编写了一个计算器,但删除按钮以错误的顺序删除