Skip to main content
 首页 » 编程设计

c#之从 p4 路径中提取文件名的正则表达式

2024年01月26日27findumars

从路径"//source/project/file.cs#232",我需要匹配file.cs

Match myMatch = Regex.Match(path, @"(\w+\.\w+)[^/]*$"); 

这将在组 [1] 中给出 file.cs。

但对于文件名中带点的路径,这不起作用。

path "//source/project/file.initial.config.cs#232" 

我如何修改它以提供 file.initial.config.cs?

请您参考如下方法:

试试这个正则表达式——也进入第 1 组,并假设扩展名只能是字母、数字或下划线:

.*/((?:.*?\.)+\w+) 

如有必要,了解文件命名的允许字符和后缀,以及有关(如果)嵌入此文件名的文本的详细信息,这可以变得更加健壮。例如,如果不允许空格作为名称的一部分

.*/((?:\S*?\.)+\w+) 

或者如果只允许使用字母、数字或下划线:

.*/((?:\w*?\.)+\w+) 

如果我们可以保证序列中最后一个点之后没有点或空格,并且文件名中不允许有空格,则可以进一步缩短为:

.*/(\S*\.\w+) 

拾取最后一个“/”和最后一个“.”之间的所有内容以及最后一个“.”之后的任何单词字符

等等