去掉字符串最右边的数字或字母

本文关键字:数字 右边 字符串 | 更新日期: 2023-09-27 18:18:29

我有一个文件名:kjrjh20111103-BATCH2242_20111113-091337.txt

我只需要091337,而不是txt或-我怎么能做到这一点。它不一定是6个数字——可以是多或少,但总是在"-"之后,最后一个在"doc"或"txt"之前

去掉字符串最右边的数字或字母

您可以使用正则表达式或简单的字符串操作来完成此操作。对于后者:

int lastDash = text.LastIndexOf('-');
string afterDash = text.Substring(lastDash + 1);
int dot = afterDash.IndexOf('.');
string data = dot == -1 ? afterDash : afterDash.Substring(0, dot);

我个人认为这比正则表达式更容易理解和验证,但您的经验可能会有所不同。

String fileName = kjrjh20111103-BATCH2242_20111113-091337.txt;
String[] splitString = fileName.Split ( new char[] { '-', '.' } );
String Number = splitString[2];

Regex: .*-(?<num>[0-9]*).应该完成这项工作。

正则表达式为:

string fileName = "kjrjh20111103-BATCH2242_20111113-091337.txt";
string fileMatch = Regex.Match(fileName, "(?<=-)'d+", RegexOptions.IgnoreCase).Value;
        String fileName = "kjrjh20111103-BATCH2242_20111113-091337.txt";
        var startIndex = fileName.LastIndexOf('-') + 1;
        var length = fileName.LastIndexOf('.') - startIndex;
        var output = fileName.Substring(startIndex, length);