首页 > 解决方案 > 正则表达式 - 空白无法获取整数值

问题描述

我正在尝试使用正则表达式进行模式匹配。如果消息在模式字符串之后有空格,则它会得到一个空字符串。

string str = "studentId: 1234, Name: Hello";
Regex reg = new Regex(@"studentId:(\d*)", RegexOptions.IgnoreCase);

Match m = reg.Match(str);
Group g = m.Groups[1];
int Id = int.Parse(g.ToString());

studentId:1234(工作) studentId:1234(不工作) studentId:1234(不工作)

无论空格如何,我都需要获得值 1234 。

标签: c#regex

解决方案


是的,您需要匹配空白字符。

Regex reg = new Regex(@"studentId:\s*(\d+)", RegexOptions.IgnoreCase);

详情

  • studentId:- 固定字符串
  • \s*- 零个或多个空格
  • (\d+)- 一位或多位数字(第 1 组)。

推荐阅读