C#正则表达式忽略尾随字符

C#正则表达式忽略尾随字符,c#,regex,C#,Regex,我正在使用C#中的正则表达式,但没有找到我正在寻找的示例。我有一个字符串,它的结构如下 string arg = "Type / Subtype: 001 / 002 Additional pointless information that we don't need" 本质上,我想知道的是如何用C#格式化正则表达式以获得这个字符串中的两个数字。最后的附加信息是动态的,所以我不能硬编码这些信息 所以我现在的感觉是: Regex r = @Type / SubType: (\d+) / (\d

我正在使用C#中的正则表达式,但没有找到我正在寻找的示例。我有一个字符串,它的结构如下

string arg = "Type / Subtype: 001 / 002 Additional pointless information that we don't need"
本质上,我想知道的是如何用C#格式化正则表达式以获得这个字符串中的两个数字。最后的附加信息是动态的,所以我不能硬编码这些信息

所以我现在的感觉是:

Regex r = @Type / SubType: (\d+) / (\d+) "; 

但是我不知道要在结尾放什么来忽略尾随字符,有什么想法吗?

你不需要放任何东西。正则表达式允许给定字符串的部分匹配(除非指定锚定,如
^
$

需要注意的一点是:
“SubType”
在模式中使用CamelCase拼写,但在字符串中使用
“SubType”
,因此如果正则表达式区分大小写(这是默认设置),则正则表达式将不匹配

编辑:要匹配最后的字符串,只需添加一个括号内的通配符:

Regex r = new Regex(@"^Type / Subtype: (\d+) / (\d+) (.*)");
// ...
string remainder = match.Groups[3].Value;

请注意,前面的空格是必需的,并且
与换行符不匹配(除非使用
RegexOptions.Singleline
选项)。

不需要放置任何内容。正则表达式允许给定字符串的部分匹配(除非指定锚定,如
^
$

需要注意的一点是:
“SubType”
在模式中使用CamelCase拼写,但在字符串中使用
“SubType”
,因此如果正则表达式区分大小写(这是默认设置),则正则表达式将不匹配

编辑:要匹配最后的字符串,只需添加一个括号内的通配符:

Regex r = new Regex(@"^Type / Subtype: (\d+) / (\d+) (.*)");
// ...
string remainder = match.Groups[3].Value;

请注意,前面的空格是必需的,并且
与换行符不匹配(除非您使用
RegexOptions.Singleline
选项)。

我将使用前瞻或非捕获组作为前缀:

(?<=Type / Subtype: )(\d+)(?: / )(\d+)

(?我会使用前瞻或非捕获组作为前缀:

(?<=Type / Subtype: )(\d+)(?: / )(\d+)

(?谢谢!它工作得很好。是否有方法将最终字符串作为一个组进行匹配?谢谢!它工作得很好。是否有方法将最终字符串作为一个组进行匹配?