Regex:查找一个句点之后,最后一个斜杠之前的所有内容



我发现了一些类似的正则表达式问题,但我正在努力将这些答案转化为我想要做的事情

Y:Pathsub pathname_of_folder.microphones.flac24trackname01.flac

我想返回";flac24";

文件夹名称中的句点数会有所不同。我已经想好了如何在最后两个斜杠之间隔离文本,但我现在似乎无法获得最后一个句号之后的部分:

(?<=\)[^\]*(?=\[^\]*$)

谢谢!

对于正则表达式,我会做:

.([^.\]+)\[^\]+$

演示

既然您标记了这个Python,您也可以考虑只使用Pathlib

from pathlib import PureWindowsPath 
p=PureWindowsPath(r'Y:Pathsub pathname_of_folder.microphones.flac24trackname01.flac')
>>> p.parts[-2].split('.')[-1]
flac24

您可以使用

\[^\]*.([^\]*)\[^\]*$

请参阅regex演示详细信息

  • \-一个字符
  • [^\]*-除了之外,尽可能多的零个或多个字符
  • .-一个.字符
  • ([^\]*)-第1组:除字符外,零个或多个字符
  • \-一个字符
  • [^\]*-除字符之外的零个或多个字符
  • $—字符串结束

请参阅Python演示:

import re
regex = r"\[^\]*.([^\]*)\[^\]*$"
x = "Y:\Path\sub path\name_of_folder.microphones.flac24\trackname01.flac"
match = re.search(regex, x)
if match:
print(match.group(1))

最新更新