我有一個問題,關於用正則表達式或任何其他最佳做法或有效的方式替換一些字符。
這是我作爲輸入,它具有幾乎相同的形式:A/ABC/N/ABC/123
輸出應該是這樣的:A_ABC_NABC123
,本質上是第2 /
應更改爲_
,其餘的刪除。
當然,我可以做一些String.Replace
。等等,但我認爲這不是一個好方法。我尋找更好的解決方案。替換/與正則表達式
那麼如何用正則表達式呢?
我有一個問題,關於用正則表達式或任何其他最佳做法或有效的方式替換一些字符。
這是我作爲輸入,它具有幾乎相同的形式:A/ABC/N/ABC/123
輸出應該是這樣的:A_ABC_NABC123
,本質上是第2 /
應更改爲_
,其餘的刪除。
當然,我可以做一些String.Replace
。等等,但我認爲這不是一個好方法。我尋找更好的解決方案。替換/與正則表達式
那麼如何用正則表達式呢?
這將做到這一點,雖然有可能是一個更簡單的方法:
static class CustomReplacer
{
public static string Replace(string input)
{
int i = 0;
return Regex.Replace(input, "/", m => i++ < 2 ? "_" : "");
}
}
var replaced = CustomReplacer.Replace("A/ABC/N/ABC/123");
我裹這樣的代碼,以確保你不小心的int
變量。
編輯:還有this overload一定數量更換的後停止,但你必須做的兩個步驟:更換前兩個/
與_
,然後替換剩餘/
什麼也沒有。
你讓它太複雜了;;) – Anirudha
試試這個:
string st = "A/ABC/N/ABC/123";
string [] arrStr = st.Split(new char[] { '/' });
st = string.Empty;
for (int i = 0; i < arrStr.Length; i++)
{
if (i < 2)
st += arrStr[i] + "_";
else
st += arrStr[i];
}
取而代之的是罰款,你需要在這裏的東西,它是快(因爲它不具有解析正則表達式),看到這裏http://channel9.msdn.com/論壇/ TechOff/419168 - 哪一個更快 - RegEx-vs-Replace – mattytommo