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

标签 c# regex c#-4.0

我有一个文件名: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);

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

关于c# - 去掉字符串最右边的数字或字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8577683/

相关文章:

c# - xpath 和 c#

c# - 如何在 quartz.net 调度器中使用依赖注入(inject)

regex - 如何在 Chapel 中使用正则表达式提取子字符串?

javascript - 如何构建 JavaScript 正则表达式来提取数字

c# - 如何使用 LINQ 更新列表中的值

c# - NHibernate 具有多个数据库和事务

c# - 在 Visual Studio 2015 中,DebuggerStepThrough 不再传递异常了吗?

regex - gsub 模式值来表示帽子标志

c# - 优化Linq Where,使用key

c#-4.0 - 计算将一个矩形的 point1( x,y 坐标) 转换为另一个矩形的 Point1( x,y) 的比例因子