У меня проблема с Regex.Replace
в C#, поскольку она, похоже, не заменяет все вхождения совпадающего шаблона.RegEx.Replace только заменяет первое возникновение, необходимо все
private string ReplaceBBCode(string inStr)
{
var outStr = Regex.Replace(inStr, @"\[(b|i|u)\](.*?)\[/\1\]", @"<$1>$2</$1>", RegexOptions.IgnoreCase | RegexOptions.Multiline);
outStr = Regex.Replace(outStr, "(\r|\n)+", "<br />");
return outStr;
}
Входная строка:
[b]Saint Paul's Food Kitchen[/b] [b] [/b]Saint Paul's food kitchen opens weekly to provide food to those in need.
Результат:
<b>Saint Paul's Food Kitchen</b> [b] [/b]Saint Paul's food kitchen opens weekly to provide food to those in need.
Я испытал это в regexhero.net
и работает точно так же, как и должно быть там.
EDIT:
К сожалению, скопировали неправильную версию функции. Теперь он показывает правильный код, который ведет себя неправильно для меня.
Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –
Привет, Джон, спасибо за ссылку. Я понял, поскольку он был специфичен для реализации регулярных выражений .NET, он должен быть там, но я понимаю и буду помнить об этом. – Derokorian
Даже если он определен для .NET, он все равно не имеет ничего общего с C#. –