2013-02-05 126 views
0

我進入系統(例如24132352454235000534),它們各20個字符長批號收集提取從字符串的子串。我想用正則表達式從每個批號中提取7到15的子字符串。使用正則表達式

我想使用正則表達式的原因是,要求不是要修改超過20個進程使用的現有代碼,而只是將表達式添加到配置中,以便在需要時可以應用該表達式正確的過程。

我怎麼會去這樣做嗎?

+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 
+0

你能解釋一下這個表情在做什麼嗎? – Kobojunkie

+1

@Kobojunkie - 它正在向前看6位數字(\ d {6}),捕獲下9位數字(\ d {9})並忽略最後5位數字(\ d {5})。 – Brian

+0

太棒了!謝謝 – Kobojunkie