0

以前在如何检查字符串是否包含从 a 到 z 的任何字母?我已经学会了如何使用正则表达式来检测从ato的字母z

我们也可以让 Regex 来检测任何符号吗?喜欢. , ! ? @ # $ % ^ & * ( )或任何其他。

更具体地说,我只想接受string.

4

5 回答 5

2

要匹配仅包含数字或空字符串的字符串,请使用正则表达式模式^\d*$

要匹配仅包含数字的字符串,不允许空字符串使用正则表达式模式^\d+$

Console.WriteLine((new Regex(@"^\d+$")).IsMatch(string) ? "Yes" : "No");

在此处测试此代码。


在http://www.regular-expressions.info/dotnet.html了解更多信息

于 2012-10-14T18:49:56.700 回答
1
using System.Text.RegularExpressions;

首先创建正则表达式数字

private Boolean number(string obj)
        {
            Regex r = new Regex(@"^[0-9]+$");
            Match m = r.Match(obj);
            if (m.Success == true) return true;
            else { return false; }
        }

并确保这是数字

if (number(textBox1.Text) == true)
            {
                MessageBox.Show("text box couldn't filled with numbers", "WARNING", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
于 2012-10-14T18:54:06.833 回答
1

如果您想要一个比正则表达式更快且更易于维护的解决方案:

string num = "123456a";
bool isOnlyDigits = num.All(char.IsDigit);
于 2012-10-14T19:05:03.170 回答
0

Regex您可以通过遵循某些约定来创建自己的。请参阅此Regex Cheat Sheet创建您自己的 Regex。

于 2012-10-14T18:50:52.610 回答
0

\d+将匹配 1 个或多个数字。

例如:

var myString = @"fasd df @###4 dfdfkl  445jlkm  kkfd ## jdjfn ((3443  ";
var regex = new Regex(@"(\d+)");
var matches = regex.Match(myString); // This will match: 4, 445 and 3443

希望这可以帮助。

于 2012-10-14T18:52:51.987 回答