从字符串中取出最后一个字符,将其存储到变量中,然后使用Regex C#将其删除
本文关键字:然后 Regex 删除 变量 存储 最后一个 字符 字符串 | 更新日期: 2023-09-27 18:14:37
我有一个字符串,如下所示(例如(:
Testing stackoverflow 6
Testing stackoverflow 67
Testing stackoverflow 687
Testing stackoverflow 6789
现在我知道了一个事实,每次字符串都会以一个数值结束。我需要去掉这个号码。。。它可以是一个介于1到5000之间的数字…我认为使用lambda表达式没有帮助,因为我无法真正确定这个数字有多大,所以我认为regex可能是解决这个问题的好方法,但如何解决呢?
编辑:
当我从regex中取出数字并像这样存储时:
int somevalue = Convert.ToInt32(whatever regex takes out);
// Now I have to remove the number from the string...
有人知道吗?
var match = Regex.Match(myString, @"'d+$");
if(match != null) {
long ret;
long.TryParse(match.Groups[0].Value, out ret);
myString = Regex.Replace(myString, @"'d+$", "");
}
只有当字符串末尾有一个数字时,正则表达式才匹配,并且将ret声明为long
允许您涵盖ret比int.MaxValue
长的情况。
int number = 0;
string test = "Testing stackoverflow 6789";
string[] testArr = test.Split(' ');
int.TryParse(testArr[testArr.Length - 1], out number);
//you have the value in the number variable.
string str = "Testing stackoverflow 6";
long value = 0;
bool b = long.TryParse(str.Split(' ').Last(), out value);
要根据Space进行拆分,请获取最后一个字符串并将其转换为long或int
使用正则表达式:
string pattern = @"^.+ ('d+)$";
string input = "Testing stackoverflow 6789";
var match = Regex.Match(input, pattern, RegexOptions.None, new TimeSpan(0, 0, 0, 0, 500));
int? output;
if (match != null)
{
string groupValue = match.Groups[1].Value;
output = Convert.ToInt32(groupValue);
}