我有一个文件名:kjrjh20111103-BATCH2242_20111113-091337.txt
我只需要091337
,而不是txt或 - 我怎么能实现这一点。它不一定是6个数字,它可以更多或更少,但总是在“ - ”和之前的最后一个。“doc”或。“txt”
答案 0 :(得分:4)
您可以使用正则表达式或简单的字符串操作来执行此操作。对于后者:
int lastDash = text.LastIndexOf('-');
string afterDash = text.Substring(lastDash + 1);
int dot = afterDash.IndexOf('.');
string data = dot == -1 ? afterDash : afterDash.Substring(0, dot);
我个人我觉得这比正则表达更容易理解和验证,但你的里程可能会有所不同。
答案 1 :(得分:1)
String fileName = kjrjh20111103-BATCH2242_20111113-091337.txt;
String[] splitString = fileName.Split ( new char[] { '-', '.' } );
String Number = splitString[2];
答案 2 :(得分:0)
正则表达式将是:
string fileName = "kjrjh20111103-BATCH2242_20111113-091337.txt";
string fileMatch = Regex.Match(fileName, "(?<=-)\d+", RegexOptions.IgnoreCase).Value;
答案 3 :(得分:0)
正则表达式:.*-(?<num>[0-9]*).
应该完成这项工作。 num capture group包含你的字符串。
答案 4 :(得分:0)
String fileName = "kjrjh20111103-BATCH2242_20111113-091337.txt";
var startIndex = fileName.LastIndexOf('-') + 1;
var length = fileName.LastIndexOf('.') - startIndex;
var output = fileName.Substring(startIndex, length);