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[ESWOFGOIUDSHFOUIDSFOUISFGHDSpuifdsghp“登录=亚马逊&密码=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[ESWOFGOIUDSHFOUIDSFOUISFGHDSpuifdsghp“登录=亚马逊&密码=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]*(?=&)");