使用正则表达式从字符串中提取子字符串

时间:2013-02-05 20:30:12

标签: c# regex string string-formatting

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

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

我该怎么做呢?

2 个答案:

答案 0 :(得分:3)

只需使用积极的外观:

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

在此处查看:[{3}}

答案 1 :(得分: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