Как передать в MatchEvaluator
доп.параметры. Сейчас я использую статические переменные для передачи, но как-то это некрасиво
using System.Text.RegularExpressions;
...
//Наш подстановщик MatchEvaluator
protected static string ReplaceForDisplayString(System.Text.RegularExpressions.Match m)
{
//Что-то что использует передаваемый параметр
}
//Основной код
string pattern = @"\{([0-9]{1,}|[P]{1})\}";//Паттерн не важен, он может быть и другим
Regex rgx = new Regex(pattern);
//Тут запускаем подстановщик по регулярке,
//однако в подстановщик нужно передать параметр,
//который будет там использоваться
string newStr = rgx.Replace(str, new MatchEvaluator(ReplaceForDisplayString));
UPD: сейчас у меня что-то типа:
using System.Text.RegularExpressions;
...
//Вот это параметр я передаю как-то по топорному
protected static object parameter = null;
protected static string ReplaceForDisplayString(System.Text.RegularExpressions.Match m)
{
//Тут я его как-то использую
return parameter.ToString();
}
string pattern = @"\{([0-9]{1,}|[P]{1})\}";//Паттерн не важен, он может быть и другим
Regex rgx = new Regex(pattern);
parameter = "abcd";
string newStr = rgx.Replace(str, new MatchEvaluator(ReplaceForDisplayString));
Как насчет?
protected static string ReplaceForDisplayString(Match m, string parameter)
{
return parameter.ToString();
}
string pattern = @"\{([0-9]{1,}|[P]{1})\}";
Regex rgx = new Regex(pattern);
string newStr = rgx.Replace(str, m => ReplaceForDisplayString(m, "abcd"));
Как верно заметил Grundy - new MatchEvaluator()
можно опустить.
Подробнее про лямбда-выражения.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть несколько checkbox'ов с тремя состояниями: включено, исключено, не установлено
Есть множество однотипных таблиц, различных только по именам и даннымКоличество столбцов и их названия идентичны
Необходимо написать программу, которая будет получать на вход строку и выводить эту же строку, с учётом расставленных скобок и их вложенности
Сохраняю изображение в массив байтов, перед этим произвел конвертацию изображения в JPEG