c# - 正则表达式 - 空白无法获取整数值
问题描述
我正在尝试使用正则表达式进行模式匹配。如果消息在模式字符串之后有空格,则它会得到一个空字符串。
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 。
解决方案
是的,您需要匹配空白字符。
Regex reg = new Regex(@"studentId:\s*(\d+)", RegexOptions.IgnoreCase);
详情:
studentId:
- 固定字符串\s*
- 零个或多个空格(\d+)
- 一位或多位数字(第 1 组)。
推荐阅读
- .net-core - 未创建 Serilog 和 .NET Core Web API 日志文件
- groovy - 如果一步成功,如何在并行构建中设置条件以进行下一阶段
- python - 将一个嵌套字典的值更新到另一个具有字典列表的字典
- python - 如何将 django 抽象类与 graphene-django 一起使用?
- c# - 如何从导航列表中删除页面并终止该页面的所有进程?
- sybase - Sybase:如何显示当前会话变量的值?
- python - python socket pickled numpy 数据没有显示
- c# - IIS 上的 WCF 路由服务
- swift - SwiftUI Navigation:如何将详细视图切换到不同的项目?
- sql - 将行号添加到存储过程