精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
近期用VS2019 C#写软件,批量处理文件,需要对文件名排序,里面用到了正则式,对简单的正则式通过,对复杂的改了后出:输入字符串的格式不正确。如下图:
*号在正则帮助里有说明,表示*等价于{0,},0到多个重复都是允许。有*就提示异常,奇怪,按如下行改了2次还是错误:
string[] fileList = sfiles.OrderBy(s => int.Parse(Regex.Match(s.Substring(3), @"\d{0,4}?").Value)).ToArray();
string[] fileList = sfiles.OrderBy(s => int.Parse(Regex.Match(s.Substring(3), @"\d{4}?").Value)).ToArray();
最后去了@,改成如下才通过:
string sget = Regex.Match(sfile.Substring(3), "\\d{1,4}").Value.ToString();
估计和函数环境有关系。
在写本文前,我在简单函数里试了如下行,编译运行也没问题:
string sget = Regex.Match("A1_2.txt", @"\d{1,4}?").Value.ToString();
反正报问题,不开心也要解决,出问题地方要解决就要换形式,没办法。
在编写代码时,发现带Regex行的参数字符串里有正则的提示, 对写正则有帮助,如下图:
我记的VS2010是没有,其它版本不记的。有提示肯定有利于开发,所以用IDE的新版本有好处。