字符串中提取数字,在线等!

我有一个字符串,“p27p p34p”我想拿到里面的数字,里面的数字是用户ID,我的根据这ID去查Name。
该字符串中可能有多个“p用户IDp”,请问怎么在c#后台把数字弄出来。
结果是:27 34。想把拿出来的数字放在一个数组里面,然后我循环去查用户。

8个回答

  public static decimal GetNumber(string str)
  {
   decimal result = 0;
   if (str != null && str != string.Empty)
   {
    // 正则表达式剔除非数字字符(不包含小数点.)
    str = Regex.Replace(str, @"[^\d.\d]", "");
    // 如果是数字,则转换为decimal类型
    if (Regex.IsMatch(str, @"^[+-]?\d*[.]?\d*$"))
    {
     result = decimal.Parse(str);
    }
   }
   return result;
  }
Austandin
西风残阳 回复残缺丶: 如果是这样的话,最简单的方法是用Split方法配合正则表达式,直接通过字母把字符串切分成为数字数组
大约 5 年之前 回复
qq_19755427
残缺丶 我试了一下,拿到的是数字,但是我想要数字分别取出来,而不是拼在一起变成一个数字,要怎么写呢
大约 5 年之前 回复

好方法暂时没想到 笨方法有一个
遍历字符串 判断是否是INT

qq_19755427
残缺丶 具体怎么实现,代码要怎么写。
大约 5 年之前 回复

好方法暂时没想到 笨方法有一个
遍历字符串 判断是否是INT

用一个for循环将字符串中的每个字符都+'0',就变成数字了

sscanf是c里面的

试试这个

 static void GetIDList(string strIDInput, List<string> IDList)
        {
            string strNumber = string.Empty;
            foreach (char ch in strIDInput.ToCharArray())
            {
                int ascii = Convert.ToInt32(ch);
                if (ascii >= 48 && ascii <= 57)
                {
                    strNumber += Convert.ToString(ch);
                }
                else
                {
                    if (strNumber.Length > 0)
                    {
                        IDList.Add(strNumber);
                    }
                    strNumber = string.Empty;
                }
            }
        }

试试循环一个正则表达式吧!

提取字符串中的数字
从字符串中提取数字
字符串 汉字/数字提取
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐