Something like this should work:
private static readonly Regex Pattern = new Regex("{(.+?)}", RegexOptions.Compiled);
public override object ProvideValue(IServiceProvider serviceProvider)
{
return Pattern.Replace(String, match =>
{
string newMatch = match.Groups[1].Value;
var value = new StaticResourceExtension(newMatch).ProvideValue(serviceProvider);
return Convert.ToString(value);
});
}