我想在運行時基於一組花括號內的內容替換字符串中的值。將正則表達式結果傳遞給函數
// this.LinkUrl = "/accounts/{accountId}"
this.LinkUrl = Regex.Replace(account.Company.LinkUrl, @"\{(.*?)\}", "$1");
// this.LinkUrl = "/accounts/accountId"
到目前爲止,它按預期工作,並消除大括號。但我怎麼能傳遞$ 1的值到一個函數,像這樣
this.LinkUrl = Regex.Replace(account.Company.LinkUrl, @"\{(.*?)\}", this.GetValueForFieldNamed("$1"));
使「ACCOUNTID」被替換爲值函數返回?例如「/賬戶/ 56」
非常好,不得不從{m.Groups [1] .Value'中刪除{},但除此之外它效果很好。 – JConstantine 2012-08-07 13:34:46
這有點奇怪,因爲這在我的機器上運行良好。你使用相同的正則表達式嗎?如果我調用'Regex.Replace(「/ accounts/{accountId}」,@「\ {(。*?)\}」,GetValueForFieldNamed)',那麼在'GetValueForFieldNamed'裏面我有'm.Groups [0] .Value ==「{accountID}」',但是'm.Groups [1] .Value ==「accountID」'。 – Jan 2012-08-07 13:46:21
這是我的錯誤,我使用索引0而不是1.出於好奇,爲什麼它會給出2個結果? – JConstantine 2012-08-07 14:05:16