下划线后删除所有数字

时间:2019-04-30 03:33:42

标签: c#

我有这段代码,该代码应删除某个_

之后的所有数字
var fileNameOnly1 = Regex.Replace(fileNameOnly, @"[_\d]", string.Empty);

输入

4a_32
abcdef43252_43242

当前输出

4a2
abcdef432523242

预期产量

4a
abcdef43252

我也尝试使用@"[_\d]"

有什么办法可以删除_之后的数字并删除'_'吗?

3 个答案:

答案 0 :(得分:2)

您没有特别提到需要使用正则表达式,并且在大多数情况下,我建议您不要使用正则表达式,因为正则表达式相当慢(与其他方法相比)且麻烦(难以读写)。

我认为最好使用字符串操作来做到这一点。

var fileNameOnly1 = fileNameOnly.Split('_')[0];

上面的代码将找到第一个'_'并接受其前面的所有字符(作为字符串返回)。

答案 1 :(得分:0)

尝试一下

模式

_\d+

示例

var fileNameOnly = "asdads_234asd";
var result = Regex.Replace(fileNameOnly, @"_\d+", string.Empty);
Console.WriteLine(result);

输出

asdadsasd

答案 2 :(得分:0)

只需使用此正则表达式: _\d+

Regex.Replace(fileNameOnly, @"_\d+", string.Empty);