如何忽略TextBox中的特定字符?

时间:2019-05-04 15:34:00

标签: c# regex autocomplete textbox

我想知道在输入TextBox时如何忽略某些字符,当我正在寻找要输入的产品时,这个文本框与AutoCompleteCustomSource一起使用例如5 * my product并在那一刻忽略部分5 *来找到应有的产品,因为如果我不忽略5 *它将找不到任何产品,因为我没有一个包括数字或那个符号的

在这个示例中,5 *(可以是任意数字,不仅是5)应该做的是将5次添加到一个DataGridView产品中,我尝试使用正则表达式来查找匹配项这样的组合完成了

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 个答案:

答案 0 :(得分:1)

您可以省略断言字符串结尾的$。除了使用Matches,还可以使用Replace,然后用空字符串替换该匹配项。

例如:

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

C# demo

使用字符类是一种广泛匹配,因为它也只能匹配数字或空格字符。与您的格式更匹配的是:

^\d+\s\*\s
  • ^声明字符串的开头
  • \d+匹配1个以上的数字
  • \s+\*\s+匹配1个以上空白字符,*和1个以上空白字符

Regex demo

例如

Regex rx = new Regex(@"^\d+\s\*\s");