首页 > 解决方案 > 正则表达式 C# - 中间的可选组

问题描述

我有这样的源文本,中间有一个可选组:

GH22-O0-TFS-SFSD 00-1-006.19135
GH22-O0-TFS-SFSD 00-1-006.1.19135

第一种情况下的期望值为“19135”,第二种情况下为“1.19135”。

正则表达式必须匹配整个字符串并选择第一个“。”之后的所有字符。- 这是我的第 1 组。我尝试创建子组并将第 3 组标记为可选,但它不起作用。

正则表达式:

.*\.0*(([0-9])(\.0*([0-9]+)))

应如何更改以捕获所需的值?

标签: c#regex

解决方案


这应该适合你:

.*?\.(.*)

这将匹配整个字符串并包括捕获组 1 中第一个句点之后的所有内容,无论字符类型如何。


推荐阅读