如何忽略 TextBox 中的特定字符?
How to ignore specific characters in TextBox?
我想知道如何在输入 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
中删除它们,任何想法或其他方法都很好,希望你能帮助我,谢谢。
您可以省略断言字符串结尾的 $
。您可以使用 Replace,然后用空字符串替换该匹配项,而不是使用匹配项。
例如:
Regex rx = new Regex(@"^[0-9*\s]+");
Console.WriteLine(rx.Replace("5 * my product", "")); //my product
使用字符 class 是一种广泛匹配,因为它也只能匹配数字或空白字符。与您的格式更精确匹配的是:
^\d+\s\*\s
^
断言字符串开始
\d+
匹配 1+ 个数字
\s+\*\s+
匹配 1+ 个空白字符,*
和 1+ 个空白字符
例如
Regex rx = new Regex(@"^\d+\s\*\s");
我想知道如何在输入 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
中删除它们,任何想法或其他方法都很好,希望你能帮助我,谢谢。
您可以省略断言字符串结尾的 $
。您可以使用 Replace,然后用空字符串替换该匹配项,而不是使用匹配项。
例如:
Regex rx = new Regex(@"^[0-9*\s]+");
Console.WriteLine(rx.Replace("5 * my product", "")); //my product
使用字符 class 是一种广泛匹配,因为它也只能匹配数字或空白字符。与您的格式更精确匹配的是:
^\d+\s\*\s
^
断言字符串开始\d+
匹配 1+ 个数字\s+\*\s+
匹配 1+ 个空白字符,*
和 1+ 个空白字符
例如
Regex rx = new Regex(@"^\d+\s\*\s");