我想知道在输入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
中删除,任何实现此目的的想法或其他方式都很好,希望能帮助我,谢谢。
答案 0 :(得分:1)
您可以省略断言字符串结尾的$
。除了使用Matches,还可以使用Replace,然后用空字符串替换该匹配项。
例如:
Regex rx = new Regex(@"^[0-9*\s]+");
Console.WriteLine(rx.Replace("5 * my product", "")); //my product
使用字符类是一种广泛匹配,因为它也只能匹配数字或空格字符。与您的格式更匹配的是:
^\d+\s\*\s
^
声明字符串的开头\d+
匹配1个以上的数字\s+\*\s+
匹配1个以上空白字符,*
和1个以上空白字符例如
Regex rx = new Regex(@"^\d+\s\*\s");