0

我收集了进入系统的批号(例如 24132352454235000534),每个 20 个字符长。我想使用正则表达式从我的每个批号中提取从 7 到 15 的子字符串。

我想使用正则表达式的原因是,要求不是修改现有的 20 多个进程使用的代码,而是简单地将表达式添加到配置中,以便在正确的进程需要时应用它。

请问我该怎么做?

4

2 回答 2

3

只需使用积极的向后看:

(?<=\d{6})\d{8}

在此处查看实际操作:http ://regex101.com/r/eX5rZ9

于 2013-02-05T20:34:15.537 回答
0

试试这个正则表达式:

(\d{6})(\d{9})(\d{5})

示例代码:

string strRegex = @"(\d{6})(\d{9})(\d{5})";
RegexOptions myRegexOptions = RegexOptions.Multiline | RegexOptions.Singleline;
Regex myRegex = new Regex(strRegex, myRegexOptions);
string strTargetString = @"24132352454235000534";
string strReplace = @"$2";  // corresponds to the 2nd group: (\d{9})

return myRegex.Replace(strTargetString, strReplace);

最终字符串:

524542350
于 2013-02-05T20:34:48.923 回答