"abc_d1.txt" should get 0
"abc_d1_2.txt" should get 2
"abc_d1_14.txt" should get 14
"abc_d12_x2_156.txt" should get 156
这是我到目前为止所做的,但我没有得到正确的结果。 string y = "tester_yg1.txt";
string pattern = @"(\d+)(?!.*\d)";
Regex rg = new Regex(pattern);
var z = rg.Match(fullFileName).Value;
Console.WriteLine($"z is {z}");
最佳答案
另一种选择是使用一组积极的环视
(?<=_[^\W\d_]\d+_?)\d*(?=\.\w+$)
说明(?<=
正向后视,断言直接在左边的是_[^\W\d_]\d+_?
匹配 _
, 除了数字或 _ 和 1+ 数字后跟可选的 _
之外的字符字符)
近距离回顾 \d*
匹配 0+ 个数字(也可以在没有数字时获取位置)(?=
正向前瞻,断言直接向右的是\.\w+$
匹配一个 .
和 1+ 个单词字符直到字符串结尾 )
关闭前瞻.NET regex demo
关于c# - 从字符串中获取最后一组数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65501080/