【发布时间】:2012-03-14 15:11:13
【问题描述】:
我正在构建一个通用的正则表达式验证器,它接受一个值进行比较并返回 true 或 false 是否匹配。验证器与自定义控件相关联,因此输入会自动从属性中检索。我想知道.NET 是否在正则表达式中有用于字符串替换的语法。我的意思不是使用 Regex.Replace 方法,我的意思是使用实际的正则表达式作为用其他内容替换文本的机制。这样我就可以做到:
return Regex.IsMatch(control.Text, "some regex with replacement logic built in");
更具体地说,我希望我的正则表达式删除所有非数字值,然后确保它在多个字符内。
【问题讨论】:
-
您是用某些东西替换非数字值还是只是删除它们?
-
听起来你想要一个单行,但问题是你需要两行。如果您可以首先使用 regex.replace 删除非数字字符,然后在“所有数字字符?”上运行匹配,这似乎不会太糟糕。表达。不过,您可能可以将您的 UI 切换为使用蒙版文本框并省去很多麻烦。
-
只需两步。先清理
control.Text,再匹配。