我发现了一些类似的正则表达式问题,但我正在努力将这些答案转化为我想要做的事情
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))