我有多个需要解析的文件名。这些文件之间的一个共同点是级别(修订)是点之前的最后一个字母。我还需要一个接受连字符 (-) 的正则表达式。
文件名示例:
- 068394B.dwg
- 06841213E.dwg
- 420676-.dwg
好吧,你真的不需要正则表达式。您可以使用Path.GetFileNameWithoutExtension
andPath.GetExtension
来获取名称和扩展部分。然后使用name.Substring(0, name.Length - 1)
andname[name.Length-1]
获得编号和修订。
用于Int32.TryParse
检查数字是否为数字,并if ((ext >= 'A' && ext <= 'Z') || ext == '-')
检查修订是否有效。
考虑到你有一个文件名列表lstFn
你可以做
List<string> lstPFn=lstFn.Where(f=>Regex.IsMatch(f,@"^.*\.d.*$"))
.ToList<string>();