我正在使用C#而我想阅读一些用某些字符分隔的数据
例如:“IP @ DOMAIN; USERNAME:PASSWORD”
但是用户提供的每个列表都不同
所以我想尝试使用掩码列表来获取桅杆
我使用这样的东西来阅读列表
string[] lines = File.ReadAllLines("PathToTheList");
foreach(string line in lines){reading line with mask}
答案 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();
}
}