Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从文本文件中提取某些信息_C#_Text - Fatal编程技术网

C# 从文本文件中提取某些信息

C# 从文本文件中提取某些信息,c#,text,C#,Text,所以我有一个文本文件,就是一个在我的个人帐户(存储用户名和密码的程序)上充满电子邮件和密码的文件。文本文件的格式很奇怪,比如: "login=Amazon&password=MYPASS&r&email=myemail@gmail.com" 我将如何从中提取密码和电子邮件 我该如何创建一个循环,将电子邮件从它们中取出,然后将相应的密码放入一个输出文本文件中?我我用正则表达式做了一些假设,我在这方面做得很糟糕,是的。谢谢你们的帮助 我真的不知道,但我至少尝试过: stri

所以我有一个文本文件,就是一个在我的个人帐户(存储用户名和密码的程序)上充满电子邮件和密码的文件。文本文件的格式很奇怪,比如:

"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)){

{
} 

就像我说的,我不知道该怎么做,但我知道尝试一下很好。

这个网站非常适合开发你的正则表达式:

这里有一种方法可以让你获得你想要的东西

       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
        }
var输入=
@“login=Amazon&password=MYPASS&r&email=myemail@gmail.comlogin=亚马逊&password=MYPASS&r&email=myemail@gmail.com";
var模式=@“登录=(?*?)和密码=(?*?)&r&email=(?*?((?=login)|$|\s)”;
foreach(System.Text.RegularExpressions.Regex.Matches(输入,模式)中的匹配)
{
var login=match.Groups[“login”].Value;
var password=match.Groups[“password”].Value;
var email=match.Groups[“email”].Value;
//在这里编写代码来处理这些值
}
我将解释表达式的最后一部分是如何工作的。(?:(?=登录)|$|\s)。基本上,电子邮件将包含每个字符,直到找到“登录”、“行尾”或空白为止。空白仅用于测试,可以删除。

接下来可以执行此操作(以2个字符串为例):

string source=“login=Amazon&password=MYPASS&r&email=myemail@gmail.com";
string secondsource=@“login=Amazon&password=MYPASS&r&email=myemail@gmail.comlogin=亚马逊&password=MYPASS123&r&email=myemail@gmail.com";

字符串结果=Regex.Match(源@”(?你尝试过什么正则表达式?我在帖子中说我不知道我在用Regex做什么,所以这就是我需要帮助的原因。我更喜欢用代码来解释。你真的在
com
login
之间没有分隔符吗?)myemail@gmail.comlogin=亚马逊
?哦,我现在改了,所以现在它就开了e行不是背对背的;类似于:
“login=Amazon&password=MYPASS&r&email=myemail@gmail.comlogin=亚马逊&password=MYPASS&r&email=myemail@gmail.com“
在每一行上好吧,好吧,我明白这一点,现在只需说出于某种原因,文本文件包含垃圾填充物,也称为:
jsdkjakdjladksa;ldjs;ad”登录=亚马逊&密码=MYPASS&r&email=myemail@gmail.com“dlskdl;akl;dsal;dl;sal;dk;alskdl;sakd;afjiodjf[ESWOFGOIUDSHFOUIDSFOUISFGHDSPUIFDSGHP”登录=亚马逊和密码=我的通行证和电子邮件=myemail@gmail.com“
上面的代码对我不起作用,我看到Regex中有一个错误,我想我已经修复了,输入的只是
”登录=亚马逊&密码=MYPASS&r&email=myemail@gmail.com“
所以该模式应该排除结尾处的额外登录,对吗?是的,我假设该模式在重复自身,或者是在一行接一行,或者是在新的行上。我将在回答中解释它。仍然不明白,人,文件中的文本类似于
jsdkjakdjladksa;ldjs;ad”登录=亚马逊&密码=MYPASS&r&email=myemail@gmail.com‌​“dlskdl;akl;dsal;dl;sal;dk;alskdl;sakd;afjiodjf[ESWOFGOIUDSHFOUIDSFOUISFGHDS‌​puifdsghp“登录=亚马逊&密码=MYPASS&r&电子邮件=myemail@gmail.com
顺便说一句,这个“垃圾填充物”真的是随机的。我们能假设在myemail@gmail.com垃圾填充物用“'s”括起来,然后“登录”跟随??或执行“| |”表示垃圾填充的开始?我正在尝试建立一些关于如何添加垃圾填充的结构。非常感谢;但是,我想你有一个旧版本我刷新了页面,我下面的评论对你来说是一样的:现在只需说出于某种原因,文本文件包含垃圾填充,又名:
jsdkjakdjladksa;ldjs;ad“login=Amazon&password=MYPASS&r&email=myemail@gmail.com‌​“dlskdl;akl;dsal;dl;sal;dk;alskdl;sakd;afjiodjf[ESWOFGOIUDSHFOUIDSFOUISFGHDS‌​puifdsghp“登录=亚马逊&密码=MYPASS&r&电子邮件=myemail@gmail.com“
仍然可以给我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]*(?=&)");