2
在C#中枚舉正則表達式替換的最佳方式是什麼?C#枚舉正則表達式匹配
例如,如果我想每一個「<意圖過濾器」比賽由替換爲「<意向過濾器的android:標籤=標籤#」。 #號是增量數字。編碼它的最好方法是什麼?
在C#中枚舉正則表達式替換的最佳方式是什麼?C#枚舉正則表達式匹配
例如,如果我想每一個「<意圖過濾器」比賽由替換爲「<意向過濾器的android:標籤=標籤#」。 #號是增量數字。編碼它的最好方法是什麼?
您可以在指定爲MatchEvaluator
回調的匿名方法中使用遞增的計數器。 (?<=…)
是積極向後看的;它由正則表達式評估器匹配,但未被移除。
string input = "a <intent-filter data=a /> <intent-filter data=b />";
int count = 0;
string result = Regex.Replace(input, @"(?<=\<intent-filter)",
_ => " android:label=label" + count++);
不要打擾這個正則表達式。按照以下方式做點什麼:
var pieces = text.Split(new string[] { "xx" });
var sb = new StringBuilder();
var idx = 0;
foreach (var piece in pieces)
{
sb.Append(piece);
sb.Append(" android:label=label");
sb.Append(idx);
}
// oops, homework assignment: remove the last "<intent-filter android:label=label#"
+1 :-)哦!閃亮!可能是'_(match)=>「android:label = label」+ count ++);'?因爲http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.matchevaluator(v = vs.110).aspx –
@DarenThomas:'_'被用作* de facto *約定匿名方法中的參數名稱將不會在方法體中使用。你可以使用'match =>'來代替。 – Douglas
啊!你是對的!這是這樣的「我也知道!」我的時刻。捂臉!這是正確的答案! –