C# 获取用户输入掩码?

C# Get User Input Mask?

我正在使用 C#,我想读取一些用某些字符分隔的数据

例如:"IP@DOMAIN;USERNAME:PASSWORD"

但用户给出的每个列表都不一样

所以我想尝试获得带有掩码列表的桅杆示例

我用这样的东西来阅读列表

string[] lines = File.ReadAllLines("PathToTheList");
foreach(string line in lines){reading line with mask}

这可以通过以下正则表达式解决:

"^([^@]+)@([^;]+);([^:]+):(.+)$"
  • ^ 断言字符串开头的位置
    • ([^@]+) 一个或多个字符的捕获组,不包括“@”字符 (IP)
    • @ 匹配 '@' 字符
    • ([^;]+) 捕获一个或多个字符的组,不包括';'字符(域)
    • ; 匹配 ';'字符
    • ([^:]+) 捕获一个或多个字符的组,不包括“:”字符 (USERNAME)
    • : 匹配 ':' 字符
    • (.+) 一个或多个字符的捕获组 (PASSWORD)
  • $ 断言字符串末尾的位置

Regex regex = new Regex("^([^@]+)@([^;]+);([^:]+):(.+)$", RegexOptions.Compiled);

string[] lines = File.ReadAllLines("PathToTheList");
foreach (string line in lines)
{
    Match match = regex.Match(line);
    if (match.Success)
    {
        GroupCollection groups = match.Groups;
        // group[0].ToString() == line
        string ip = groups[1].ToString();
        string domain = groups[2].ToString();
        string username = groups[3].ToString();
        string password = groups[4].ToString();
    }
}