首页 > 解决方案 > python 正则表达式提取字符之间的字符串

问题描述

我有一个字符串:

x = "abc/xyz/foo/bar/foobar.mp3"

如何从中提取 foobar?

我是这样做的:

import re
re.search(r'\/[a-z]+.mp3', x)

虽然,我不知道如何在没有 '.' 的情况下提取匹配的字符串。并且没有'.mp3'。

我不想做 Python 拆分、rplist、分区等,因为它增加了额外的功能。我希望它尽可能简单和简短。

编辑:

  1. 是的,这是一条路径。
  2. 我不知道路径的长度。
  3. 如前所述,我不想使用拆分。

标签: pythonregex

解决方案


匹配非斜线,然后向前看\.mp3$

re.search(r'[^/]+(?=\.mp3$)', x)

确保.用反斜杠转义,否则它将匹配任何字符。


推荐阅读