C#:如何检查这些字符串是否只包含数字和字母? (正则表达式)

时间:2017-01-07 17:55:19

标签: c# regex string

所以我有这样的代码:

// Add new adress
static int New(ref List<string> adr, int index)
{

    Console.Write("Nubmer "); string number= Console.ReadLine();
    Console.Write("Prename"); string prename= Console.ReadLine();
    Console.Write("Name"); string name= Console.ReadLine();
    Console.Write("Place "); string place= Console.ReadLine();
    Console.Write("Age "); string age= Console.ReadLine();
    Console.Write("Salary "); string salary= Console.ReadLine();

    Console.Write("\nDatensatz speichern? <j/n> "); string wahl = Console.ReadLine().ToUpper();

    if (wahl == "J")
    {
        string zeile = number + ";" + prename + ";" + name + ";" + place + ";" + age + ";" + salary ;
        adr.Add(zeile);

        File.WriteAllLines(@filename, adr);
        index++;
    }
    return index;
}

现在我要问你们,如果string number, age, salary只包含数字且string prename, name, place只包含来自A-Z和a-z和max的字母,我该怎么检查呢? 20个字母?

我听说过有关Regex的一些内容,但我不明白..感谢您的帮助:)。

2 个答案:

答案 0 :(得分:1)

你可以使用正则表达式 - 正则表达式检查字符串是否匹配某种模式。

仅限数字,您可以使用此正则表达式:

^[0-9]+$

仅限信件:

^[A-Za-z]{1,20}$

所以,你的代码应该是这样的(数字示例):

using System.Text.RegularExpressions; //on the top

string regexPattern = "^[0-9]+$";
string testString = "123456";

if (Regex.IsMatch(testString, regexPattern))
{
    Console.WriteLine("String contains only digits and is valid");
}
else
{
    Console.WriteLine("String contains symbols other than digits or is empty or too long");
}

答案 1 :(得分:0)

对于字符串的长度,您可以使用方法.length()

string test = "testing";

if(test.length() <=  20){}

我希望这会有所帮助,祝你好运