Я использую C # и .NET, и у меня есть регулярное выражение, которое выглядит так
"\D"
Это соответствует всем нечисловым символам, однако я не хочу, чтобы это совпадало с десятичной точкой (.) И отрицательным знаком (-). Как я могу сделать это с регулярными выражениями?
Итак, я попробовал Криса, и он сделал несколько изменений, чтобы заставить его работать:
(у меня есть TextBox с именем «Оригинал»)
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;
, потому что всякий раз, когда его заменяли, он помещал выделение в начало, и это казалось бы немного странным для пользователя ...