正则表达式或子字符串以使文件名与扩展名匹配

时间:2020-08-09 17:11:50

标签: c# string

目前,我可以给我一个文件名,其路径类似于:

convert chinese.gif -chop 0x1+0+44 -chop 0x1+0+73 -chop 0x1+0+132 -chop 0x1+0+161 -chop 0x1+0+190 -chop 0x1+0+249 -chop 0x1+0+278 -chop 0x1+0+307 -chop 0x1+0+366 -chop 0x1+0+395 result.png

C:\\Users\\testUser\\Documents\\testFile.txt.9043632d298f44ad88509c677a8249f8

我需要能够提取到扩展名末尾为止的所有内容(可以是任何文件扩展名,在扩展名后始终带有guid字符串,并带有。)

因此,示例输出为:

C:\\Users\\testUser\\Documents\\testFile.txt.9043632d298f44ad88509c677a8249f8.enc

我尝试了子字符串,但似乎无法获得正确的输入(尽管我认为这是一个简单的任务)。我似乎永远都无法得到正确的结果。

我尝试过的一个例子是:

C:\\Users\\testUser\\Documents\\testFile.txt
C:\\Users\\testUser\\Documents\\testFile.pdf
C:\\Users\\testUser\\Documents\\testFile.jpeg

但要坚持下去。

任何帮助都会很可爱!

1 个答案:

答案 0 :(得分:0)

您可以使用:

new Regex(@".*(?=\.[a-f\d]{32})", RegexOptions.IgnoreCase).Match(yourString)

说明

。+匹配任意一个或多个字符

(?= )向前看,检查以下字符是否匹配,但不包含在匹配项中

\.匹配一个点

[a-f\d]{32}与任何字符a-fdigit完全匹配32次

RegexOptions.IgnoreCase忽略大小写