Как игнорировать конкретные символы в TextBox? - PullRequest
1 голос
/ 04 мая 2019

Я хотел бы знать, как можно игнорировать некоторые символы при вводе TextBox, у меня есть это текстовое поле, которое работает с AutoCompleteCustomSource, когда я ищу продукт, который я хотел бы напечатать, например 5 * my product и проигнорируйте часть 5 * в тот момент, чтобы найти продукт, каким он должен быть, потому что, если я не буду игнорировать 5 *, он не найдет никакого продукта, потому что у меня нет никого, включая цифры или эти символы

То, что 5 * (может быть любым числом, а не только 5), должно быть сделано, чтобы добавить к DataGridView этот продукт 5 раз в этом примере, я пытался с помощью регулярного выражения найти совпадения, когда какая-то комбинация, подобная этой сделано

Regex rx = new Regex(@"^[0-9*\s]+$");

string text = txtBuscadorProducto.Text;

//Find matches
MatchCollection matches = rx.Matches(text);

MessageBox.Show(matches.Count.ToString());

но я понятия не имею, как заставить игнорировать этих персонажей, не удаляя их из TextBox, любые идеи или другой способ добиться этого было бы неплохо, надеюсь, вы поможете мне, спасибо.

1 Ответ

1 голос
/ 04 мая 2019

Вы можете опустить $, который устанавливает конец строки. Вместо использования совпадений можно использовать Заменить , а затем заменить это совпадение пустой строкой.

Например:

Regex rx = new Regex(@"^[0-9*\s]+");
Console.WriteLine(rx.Replace("5 * my product", "")); //my product

C # демо

Использование класса символов является своего рода широким соответствием, поскольку оно может также соответствовать только цифрам или пробельным символам. Более точное соответствие для вашего формата будет:

^\d+\s\*\s
  • ^ Утверждение начала строки
  • \d+ Совпадение 1+ цифр
  • \s+\*\s+ Совпадение 1+ пробельных символов, * и 1+ пробельных символов

Regex demo

Например

Regex rx = new Regex(@"^\d+\s\*\s");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...