C# C获取用户输入掩码?
我用的是C,我想读一些用字符分隔的数据 例如:IP@DOMAIN;用户名:密码 但用户给出的每个列表都不同 因此,我想试着用一个掩码列表来获取桅杆 我用这样的东西来读清单C# C获取用户输入掩码?,c#,regex,string,list,mask,C#,Regex,String,List,Mask,我用的是C,我想读一些用字符分隔的数据 例如:IP@DOMAIN;用户名:密码 但用户给出的每个列表都不同 因此,我想试着用一个掩码列表来获取桅杆 我用这样的东西来读清单 string[] lines = File.ReadAllLines("PathToTheList"); foreach(string line in lines){reading line with mask} 这可以通过以下正则表达式解决: "^([^@]+)@([^;]+);([^:]+):(.+)$" ^断言字符串
string[] lines = File.ReadAllLines("PathToTheList");
foreach(string line in lines){reading line with mask}
这可以通过以下正则表达式解决:
"^([^@]+)@([^;]+);([^:]+):(.+)$"
^断言字符串开头的位置
[^@]+
捕获一个或多个字符的组,不包括“@”字符IP
@匹配“@”字符
[^;]+捕获一个或多个字符的组,不包括“;”字符域
; 匹配“;”性格
[^::+捕获一个或多个字符的组,不包括“:”字符用户名
:匹配“:”字符
.+捕获一个或多个字符的组密码
$assert位于字符串末尾的位置
如果您知道每个列表可以使用的分隔字符,或者您可以使用regexp[a-zA-Z]+检索所有字母序列,请添加示例输入、预期输出和您解决问题的尝试。
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();
}
}