所以我的文本文件只是一个充满电子邮件和密码的文件,我的个人帐户(用于存储用户名和密码的程序)文本文件的格式很奇怪,如:
"login=Amazon&password=MYPASS&r&email=myemail@gmail.com"
我如何从中提取密码和电子邮件?
我如何创建一个循环来抓取它们中的电子邮件,然后是相应的密码 - 就像输出文本文件一样?我正在假设正则表达式,我很可怕,是的。感谢任何帮助,谢谢你们。
我真的不知道,但我至少尝试过:
string source = File.ReadAllText("FilePathHere");
string password = "password=";
foreach(password in source){
//Something with Regex Matching? Like...
if(Regex.isMatch(password, source)){
{
}
就像我说的,我不知道如何做到这一点,我知道尽管做出某种尝试是件好事。
答案 0 :(得分:0)
本网站非常适合开发您的重复表达式:http://regexhero.net/
这是一种可以让你想要提取的内容的方法。
var input =
@"login=Amazon&password=MYPASS&r&email=myemail@gmail.comlogin=Amazon&password=MYPASS&r&email=myemail@gmail.com";
var pattern = @"login=(?<login>.*?)&password=(?<password>.*?)&r&email=(?<email>.*?)(?:(?=login)|$|\s)";
foreach (Match match in System.Text.RegularExpressions.Regex.Matches(input, pattern))
{
var login = match.Groups["login"].Value;
var password = match.Groups["password"].Value;
var email = match.Groups["email"].Value;
// Write your code here to do something with the values
}
我将解释表达式的最后部分是如何工作的。 (:(=登录)| $ | \ s?)。基本上,电子邮件将包含每个字符,直到“登录”,行结束或找到空格为止。白色空间仅用于测试,可以删除。
答案 1 :(得分:0)
您可以接下来执行此操作(使用2个字符串作为示例):
string source = "login=Amazon&password=MYPASS&r&email=myemail@gmail.com";
string secondsource = @"login=Amazon&password=MYPASS&r&email=myemail@gmail.comlogin=Amazon&password=MYPASS123&r&email=myemail@gmail.com";
string result = Regex.Match(source, @"(?<=password=)[a-zA-Z\\.\\r\\n0-9]*(?=&)").Value;
MatchCollection result2 = Regex.Matches(secondsource, @"(?<=password=)[a-zA-Z\\.\\r\\n0-9]*(?=&)");