用于数字字符和.&-的正则表达式
本文关键字:正则表达式 数字字符 用于 | 更新日期: 2023-09-27 17:51:20
我使用c#和。net,我有一个Regex,看起来像这样
"'D"
匹配所有非数字字符,但是我不希望它匹配小数点(.)和负号(-)。我怎么用正则表达式做到这一点呢?
所以我尝试了克里斯的,它做了一些调整,使它工作:
(我有一个名称为"Original"的文本框)
private void Original_TextChanged(object sender, EventArgs e) {
Regex regex = new Regex(@"[^'d.-]", RegexOptions.IgnoreCase);
Match match = regex.Match(Original.Text);
if (match.Success) {
Original.Text = regex.Replace(Original.Text, "");
Original.SelectionStart = Original.TextLength;
}
}
这个Original.SelectionStart = Original.TextLength;
是因为当它被替换时,它把选择放到了开始,这对用户来说似乎有点奇怪。
您可以使用否定的字符类来排除数字、.
和-
。像这样匹配单个字符的表达式是[^'d'.'-]
。插入符号表示类被取反。
Regex.IsMatch("a f", @"^[^'d'.'-]+$"); // true
Regex.IsMatch("a_f", @"^[^'d'.'-]+$"); // true
Regex.IsMatch("a.f", @"^[^'d'.'-]+$"); // false
Regex.IsMatch("af-", @"^[^'d'.'-]+$"); // false
Regex.IsMatch("-42", @"^[^'d'.'-]+$"); // false
Regex.IsMatch("4.2", @"^[^'d'.'-]+$"); // false