我有一個包含[]多次的路徑+文件名。 我想要做的是把[]圍繞各個[像這樣:C#正則表達式[將[[]和]更改爲[]]
E:\測試\香蕉[關在籠子裏當[大象] laugh.png
替換成
E:\測試\香蕉[[]在一個籠子裏[]]時,[[]大象[] laugh.png
這樣做的原因是在這裏:
DataRow[] tempRows = filenames.Select("File like '" + tempLogElement + "'");
如果出現包含方括號的路徑,將會崩潰。這是因爲[]用於在這種'like'語句中轉義*和%。避免這個問題的辦法是逃避轉義字符....
我不是真棒在正則表達式,但我已經得到aprox的位置:
Regex.Replace(tempLogElement, "(\[*\])", "[]]", RegexOptions.IgnoreCase);
這隻逃脫]字符,但不人物。
這是行不通的:
tempLogElement.Replace("[","[[]").Replace("]","[]]")
第二替代會搞亂了第一個替換。所以我想我不得不在一次操作中使用它。首先想到的是Regex。
將在輸入字符串中括號始終處於配對?或者輸入字符串是否有'['沒有對應的']'? – 2012-04-03 01:42:13
可能沒有相應的...這是一個文件名,所以它將能夠包含任何組合。 – 2012-04-03 02:14:20