我设计了一个多语言网站,数据库中的某些值有一个标签,将替换为其语言值,删除标签括号(如果是{})或完全删除。
有两种情况:
删除括号:
value {mm} >> value mm
完全删除:
value {mm} >> value
{tag}也可以是任意长度,可以包含 -
有人可以用正则表达式帮我吗?
答案 0 :(得分:2)
以下是一些您可能会觉得有用的代码。对于许多许多更多选项,请参阅Regular-expressions.info。
所有代码Using System.Text.RegularExpressions;
删除所有出现的{mm}
(以及仅 mm
):
Regex.Replace(myString, "{mm}", String.Empty, RegexOptions.None);
将所有{mm}
(以及仅 mm
)替换为mm
:
Regex.Replace(myString, "{mm}", "mm", RegexOptions.None);
删除所有{any-characters}
:
Regex.Replace(myString, @"{[\-a-z]*}", String.Empty, RegexOptions.IgnoreCase);
将所有{any-characters}
替换为any-characters
:
Regex.Replace(myString, @"{(?<tag>[\-a-z]*)}", "${tag}", RegexOptions.IgnoreCase);
答案 1 :(得分:0)
.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
此方法的两个缺点: