正则表达式向我展示了与C#中我想要的相反

时间:2015-06-30 18:34:45

标签: c# regex

我只想在textbox3中写出数字,但它却向我显示相反的情况,我的意思是只有字母。当我使用@" \ D"就像它运作的模式一样。为什么呢?

    public String NingunCaracterEspecial(Control ctrlRegresar)
    {
        String strRegresar = ctrlRegresar.Text;
        String pattern = @"\d";
        String replacement = "";

        return Regex.Replace(strRegresar, pattern, replacement);
    } 

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        textBox3.Text = NingunCaracterEspecial(textBox1);
    }

2 个答案:

答案 0 :(得分:2)

  

当我使用@" \ D"就像它运作的模式一样。为什么呢?

\D数字的任何内容。

所以你似乎替换任何不是数字的东西,因此只留下数字,这就是你想要的。

答案 1 :(得分:1)

据我所知,你的问题是:

  • 您希望保留所有数字。
  • 您想要删除(替换为空字符串)所有字母。

因此,您指明的模式将被替换。

如果您指明\d,则会替换所有数字,因为\d与数字匹配。 \D是其补充,因此如果您替换\D,那么一个数字(包括字母)的所有内容都将被替换。