首页 > 解决方案 > 正则表达式 - 按“_”分割并排除文件扩展名

问题描述

我需要AAA_BBB_CCC.extension用“_”分割以下字符串,并从结果中排除任何文件扩展名。whereA和可以是任何字符或空格BC我希望得到AAA和。BBBCCC

我知道这\.(?:.(?!\.))+$会匹配.extension,但我无法将它与匹配的“_”结合起来进行拆分。

标签: c#regex

解决方案


使用该Path.GetFileNameWithoutExtension函数从文件名中去除扩展名。

然后用于String.Split获取包含三个项目的数组:

var fileName = Path.GetFileNameWithoutExtension(fullName);
var parts = fileName.Split('_');
var partAAA = parts[0];
var partBBB = parts[1];
var partCCC = parts[2];

如果部分总是相同的固定数量的字符长,您也可以使用该Substring函数提取它们。无需在这里求助于正则表达式。


推荐阅读