C#获取用户输入掩码?

时间:2017-06-01 22:22:29

标签: c# regex string list mask

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

例如:“IP @ DOMAIN; USERNAME:PASSWORD”

但是用户提供的每个列表都不同

所以我想尝试使用掩码列表来获取桅杆

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

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

1 个答案:

答案 0 :(得分:1)

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

"^([^@]+)@([^;]+);([^:]+):(.+)$"
  • ^在字符串的开头断言位置
    • ([^@]+) 捕获一个或多个字符的组,不包括“@”字符(IP)
    • @匹配'@'字符
    • ([^;]+)捕获一个或多个字符的组,不包括';' character(DOMAIN)
    • ;匹配';'字符
    • ([^:]+)捕获一个或多个字符的组,不包括':'字符(USERNAME)
    • :匹配':'character
    • (.+)捕获一个或多个角色的组(密码)
  • $断言字符串末尾的位置
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();
    }
}