Замена {тег} со значением или полностью удаляет {любой-тег}

Я разработал многоязычный веб-сайт, и некоторые значения в базе данных имеют тег, который будет заменен, он - значение языка, удалите скобки тегов (в случае, если {}) или удаленный полностью.

Существует два случая:

Удалите скобки:

value {mm} >> value mm

Удалите полностью:

value {mm} >> value

Также {тег} мог быть любой длиной и может содержать -

Кто-либо может помочь мне с regex?

1
задан Neil Knight 27 May 2010 в 16:16
поделиться

2 ответа

Вот код, который может вам пригодиться. Для многих многих дополнительных параметров см. 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);
2
ответ дан 3 September 2019 в 00:16
поделиться

.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

Два недостатка этого метода:

  1. Не использовать скобки.
  2. Не могу назвать ваши заполнители. Вы должны использовать порядковые заполнители. {0}, {1} ... {n}.
0
ответ дан 3 September 2019 в 00:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: