public static string regexFilesName(string inputStr)
{
Regex re = new Regex("^.{12,12}[0-9]{14,14}[^(.cfg|.dat).]*(.cfg|.dat)+$");
if (re.IsMatch(inputStr))
return inputStr;
return null;
}
公司前人写的一个函数,没明白这个什么意思,看半天没搞懂,第一次接触正则这东西
大家看看这个要返回的是什么,他想表达什么意思,他注释写的是// 得到文件名的命名规则
{
Regex re = new Regex("^.{12,12}[0-9]{14,14}[^(.cfg|.dat).]*(.cfg|.dat)+$");
if (re.IsMatch(inputStr))
return inputStr;
return null;
}
公司前人写的一个函数,没明白这个什么意思,看半天没搞懂,第一次接触正则这东西
大家看看这个要返回的是什么,他想表达什么意思,他注释写的是// 得到文件名的命名规则
解决方案 »
- 我想知道哪个服务器的压力最大
- dataGridView批量更新access数据,报"违反并发性"的错误
- C#中,如何比较byte数组?
- 哪儿有免费的.net域名空间啊?(提供有意义的一定给分)
- 判断Treeview是否有下层,如有就将下层的值的和付给上层,怎么办?
- 请问,怎样把有多行合并的excel表格导入SQL数据库中
- 构造函数中,数组初始化大小但没初始化值啊?在线等!
- 关于并发操作的违反并生性错误问题
- [高手来解决]一个用list作数据源的问题
- “磁盘空间不足,无法完成操作。” ,江湖救急。
- C#中xml数据绑定到TreeView里面,要在页面加载是就绑定
- 这个类是做什么用的?我不太明白里面的意思?
$匹配结尾
.{12,12} 12个不是换行符的字符
[0-9]{14,14} 14个数字
[^(.cfg|.dat).]* 不是.cfg或者.dat的任意字符
(.cfg|.dat)+ 结尾时.cfg或者.dat比如匹配
abcdefghabws12345678910212uoi45wer.cfg不过个人觉得
[^(.cfg|.dat).]*(.cfg|.dat)+
这个写的不怎么好(.cfg|.dat)+既然能出现一次以上,那前面的限制就没必要了
我觉的他的意思是匹配这样一条字符串
12个任意字符加上14个数字再加上不是“.cfg”或“.dat”的任意个字符再加上至少一个“.cfg”或“.dat”这个正则写的有问题
首先 14个数字这样写即可[0-9]{14} 还有就是[^]集合在这里不合适这个正则应该这样写比较合适些
@"(?isn)^.{12}[0-9]{14}((?!(\.cfg|\.dat)).)*(\.cfg|\.dat)+$"
[^] 表示的是集合中的字符串集合的补集上面的修正一下
@"(?isn)^.{12}[0-9]{14}((?!(\.cfg|\.dat)\.).)*(\.cfg|\.dat)+$"
[^(.cfg|.dat).]* 假如要匹配不是.cfg或.dat的内容的话 还不如用(?:(?!\.cfg|\.bat).)*