我试图从文件名中获取日期,所以我构建了这个reg ex表达式,但我得到了136413而不是6413,我怎么能告诉这个脚本跳过与FY13相关的数字相关的数字.所以我的最终结果应该像642013而不是13642013.
提前致谢.
string input = "X_X_FY13_Template_X_6 4 13_V2.xlsx";
string result = Regex.Replace(input, @"[^\d]", "");
MessageBox.Show(result);
Run Code Online (Sandbox Code Playgroud)
如果你没有特别依赖正则表达式,你可以这样做:
var input = "X_X_FY13_Template_X_6 4 13_V2.xlsx";
var chunks = input.Split(' ', '_'); // any separator characters
var numChunks = chunks.Where(chunk => chunk.All(char.IsDigit));
var result = String.Concat(numChunks);
Run Code Online (Sandbox Code Playgroud)
从长远来看,它可能比所有的前瞻/回顾更容易阅读/维护.
编辑:因为你是在约会之后(只要你愿意接受I18N的风险)......
var date = String.Join("/", numChunks);
Run Code Online (Sandbox Code Playgroud)