需要基本的正则表达式帮助

Posted

技术标签:

【中文标题】需要基本的正则表达式帮助【英文标题】:Basic Regex help needed 【发布时间】:2017-08-17 22:05:33 【问题描述】:

我真的是编程新手,直到现在还没有遇到过正则表达式,我希望将文本框输入限制为仅双类值并遇到了这个:

    `Regex regex = new Regex("[^0-9-]+");
     TextP1_TextChanged = regex.IsMatch(TextP1.Text);`

我想在我的程序中实施,并假设它发生在TextChanged 事件下,但我实际上并不具备实施正则表达式的知识,所以我只是在寻求任何帮助。

更新

我已经实现了TryParse,但我希望接受前面带或不带0 的十进制数字,即0.234.234。我的新代码是这样的:

    private void TextP1_TextChanged(object sender, EventArgs e)
     
        bool isDouble = Double.TryParse(TextP1.Text, out P1);
        if(isDouble == false)
        
            MessageBox.Show("Text box only accepts positive number values", "Text entered into P1 is invalid", MessageBoxButtons.OK, MessageBoxIcon.Error);
        
    

【问题讨论】:

为什么不使用double.TryParsedouble.Parsetry..catch 来测试可解析的double? @Psi 是对的。您不需要(或不想要)Regex,而且您的问题无论如何都太宽泛了,因为它不仅询问 Regex,还询问事件处理程序以及如何将您在 Internet 上找到的代码挂钩到您的应用程序中。 我现在已经实现了它并且它可以工作,但是我需要能够接受.0234 以及0.234 有没有办法做到这一点? 当你说你已经实现了这个,你的意思是你使用了你共享的正则表达式代码还是你使用了double.TryParse?我试过double.TryParse(".0234", out val),效果很好。 @adv12 我已经更新了我的问题以澄清 【参考方案1】:

你可以使用这个正则表达式[0-9]*\.[0-9]*。 * 表示 0-9 可以出现 0 到 x 次。

您可以使用regexr 快速测试正则表达式。

【讨论】:

以上是关于需要基本的正则表达式帮助的主要内容,如果未能解决你的问题,请参考以下文章

干货 | IPv6正则表达式攻略

在编写正则表达式方面需要帮助

需要帮助解决函数haskell正则表达式操作函数[关闭]

有人可以帮助我更好地理解正则表达式中的零或一,并可能在同一个正则表达式语句中嵌套另一个

正则表达式和扩展表达式

python 正则表达式第三方库 re的基本使用