【发布时间】:2017-08-04 20:04:43
【问题描述】:
我有一个类似
的声明 [Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
我想用"TestString" 替换"The {0} must be at least {2} characters long."。
目前我正在使用 Regex.Replace,但它不起作用。
例如
string lno = "[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]";
pattern = "The {0} must be at least {2} characters long.";
string _name = Regex.Replace(lno, pattern, "TestString", RegexOptions.None);
请帮忙。
编辑: 我正在解析一个类的每一行(使用 Visual Studio shell 包),并在找到时尝试替换提到的字符串。我将行号值存储到“lno”中。这就是为什么我在这里这样初始化它。 它适用于正常的字符串,例如:
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
问题仅在于它解析带有花括号的字符串时。
谢谢。
【问题讨论】:
-
首先,您需要使用 \ 转义
lno字符串中的双引号。然后你可以只使用string.Replace或者你还需要在你的正则表达式中分隔花括号。 -
你想在这里做什么?您不能使用代码“更改”消息 - 它的元数据,并且必须在编译时知道。
-
@StephenMuecke 我已经编辑了我的问题。
标签: c# .net regex asp.net-mvc powershell