Я пытаюсь игнорировать двусмысленность в вашем первоначальном вопросе и читаю его буквально. Вот метод расширения, который перегружает TrimEnd для получения строки.
static class StringExtensions
{
public static string TrimEnd(this string s, string remove)
{
if (s.EndsWith(remove))
{
return s.Substring(0, s.Length - remove.Length);
}
return s;
}
}
Вот несколько тестов, чтобы показать, что это работает:
Debug.Assert("abc".TrimEnd("<br>") == "abc");
Debug.Assert("abc<br>".TrimEnd("<br>") == "abc");
Debug.Assert("<br>abc".TrimEnd("<br>") == "<br>abc");
Я хочу отметить, что это решение легче читать, чем регулярное выражение, возможно, быстрее, чем регулярное выражение (вы должны использовать профилировщик, а не спекуляции, если вы беспокоитесь о производительности), и полезно для удаления других вещей с концов строк.
Регулярное выражение становится более подходящим, если ваша проблема носит более общий характер, чем вы заявили (например, если вы хотите удалить <BR>
и </BR>
и иметь дело с конечными пробелами или чем-то еще.