如何在特定字符串中找到一个或多个数字

本文关键字:一个 数字 字符串 | 更新日期: 2023-09-27 18:11:26

我需要在一个特定的字符串集中找到一个或多个数字。我的字符串必须是这种类型的:

  1. 首先是intuint,我需要知道它是否有u
  2. 第二个总是出现integer
  3. 其余部分是可选的:a,可能会出现"p"或"d"b.如果有"p"或"d",则会出现第二个数字。

例子:

"uint16","int32","uint12p2","int32p1","int14d100","uint13d1000"

我需要提取所有数字(一个或两个)和一个boolean表示是否有u作为第一个字符。

我正试图这样做与regexp。我以前从来没用过。

是否有一个很好的参考来学习正则表达式?

谢谢。

如何在特定字符串中找到一个或多个数字

您最好的Regex参考可能是www.regular-expressions.info:

根据我的理解,你想从字符串中获得数字,并确定这些数字是uint还是int,请参阅以下伪代码:

private void f(string str)
{
    // True if the string contains 'u'
    bool u = false;
    string numbersout:
    string numbers = "1234567890";
    if (str[0] == 'u') bool = true;
    for (int i = 1; i < str.Length(); i++)
        for (int j = 0; j < numbers.Length(); j++)
            if (str[i] == numbers[j]) numbersout += str[i];
}

这应该可以工作。它检查字符串中的每个数字,然后将其添加到另一个字符串中。如果是int类型,bool值"u"也会被设置为true。