Я разработал многоязычный веб-сайт, и некоторые значения в базе данных имеют тег, который будет заменен, он - значение языка, удалите скобки тегов (в случае, если {}) или удаленный полностью.
Существует два случая:
Удалите скобки:
value {mm} >> value mm
Удалите полностью:
value {mm} >> value
Также {тег} мог быть любой длиной и может содержать -
Кто-либо может помочь мне с regex?
Вот код, который может вам пригодиться. Для многих многих дополнительных параметров см. Regular-expressions.info .
Весь код Использование System.Text.RegularExpressions;
Удалите все вхождения {mm}
(и только мм
):
Regex.Replace(myString, "{mm}", String.Empty, RegexOptions.None);
Заменить все вхождения {мм}
(и только мм
) с мм
:
Regex.Replace(myString, "{mm}", "mm", RegexOptions.None);
Удалите все вхождения {любые-символы}
:
Regex.Replace(myString, @"{[\-a-z]*}", String.Empty, RegexOptions.IgnoreCase);
Заменить все вхождения {любые-символы}
на любые-символы
:
Regex.Replace(myString, @"{(?<tag>[\-a-z]*)}", "${tag}", RegexOptions.IgnoreCase);
.Net уже предоставляет аналогичную функциональность, используя String.Format .
string.Format("value {0}", ""); // returns "value "
string.Format("value {0}", "some value"); // returns "value some value"
С помощью этого метода вы можете выполнять более сложные операции, например, указывать форматирование для чисел:
string.Format(new CultureInfo("en-US"), "value {0:N}", 10000); // returns 10,000.00
string.Format(new CultureInfo("es-ES"), "value {0:N}", 10000); // returns 10.000,00
Два недостатка этого метода: