/// <summary>
/// Given HTML overlay for an image in the store, render it.
/// [p:n] renders as price for item ID n
/// </summary>
/// <returns>Rendered result</returns>
public static string RenderHTMLOverlay(string overlayHTML, int currencyID)
{
const string pattern = "\\[p\\:(\\b\\d+\\b)\\]";
overlayHTML = Regex.Replace(overlayHTML, pattern, FormatCurrency(GetItemPriceOnDate(DateTime.Now, currencyID, int.Parse("$1"))));
return overlayHTML;
}
這不起作用,因爲$1
不能作爲參數正確地傳遞到int.Parse
取代。C#正則表達式匹配和使用功能
Exception Details: System.FormatException: Input string was not in a correct format.
有誰知道我該如何解決這個限制?
與問題無關,但我建議使用'@「\ [p \:(\ b \ d + \ b)\]」'而不是如果您的表達式爲'pattern'。意味着同樣的事情,更具可讀性。 – ikh 2012-07-30 16:55:58
更好:'@「\ [p:(\ d +)\]」'。冒號不需要轉義,單詞邊界是多餘的。 – 2012-07-30 20:29:02