C#使用正则表达式提取字符串的两个元素
我从一个C#使用正则表达式提取字符串的两个元素,c#,regex,string,C#,Regex,String,我从一个POST请求中使用.Split()提取了以下字符串 我需要提取电子邮件(login\u email=)和密码(login\u password=) 总之,我需要得到: my%40mail.de TOPsecret 有没有一个简单的方法,也许不使用正则表达式,或者是编写一个正则表达式以便于学习?我知道提取电子邮件地址的正则表达式应该在login\u email=之后开始,并在&标志处停止。使用如下的环视工具 (?<=login_(?:email|password)=)[^&
POST
请求中使用.Split()
提取了以下字符串
我需要提取电子邮件(login\u email=
)和密码(login\u password=
)
总之,我需要得到:
my%40mail.de
TOPsecret
有没有一个简单的方法,也许不使用正则表达式,或者是编写一个正则表达式以便于学习?我知道提取电子邮件地址的正则表达式应该在
login\u email=
之后开始,并在&
标志处停止。使用如下的环视工具
(?<=login_(?:email|password)=)[^&]*(?=&)
String input=@“login\u cmd=&login\u params=&login\u email=my%40mail.de&login\u password=TOPsecret&submit…………”;
Regex rgx=新的Regex(@“(?使用如下的lookaround
(?<=login_(?:email|password)=)[^&]*(?=&)
String input=@“login\u cmd=&login\u params=&login\u email=my%40mail.de&login\u password=TOPsecret&submit…………”;
Regex rgx=new Regex(@“(?(?)(?)我想说最简单的方法是不使用Regex,而是使用内置的HttpUtility:
string param1 = HttpUtility.ParseQueryString(myUri.Query).Get("login_email");
简单。我认为最简单的方法是不使用regex,而是使用内置的HttpUtility:
string param1 = HttpUtility.ParseQueryString(myUri.Query).Get("login_email");
简单。因此,您在查询字符串中有TOPsecret
密码,这可能是一个更大的问题。我不理解您的意思。我显示的数据不可用。如果您在服务器请求的上下文中,则对象具有属性(QueryString
,表单
等)这是专门为获取这些信息而设计的。这些都在客户端,而不是服务器上。因此,查询字符串中有TOPsecret
密码,这可能是一个更大的问题。我不理解您的意思。我显示的数据不可用。如果您在服务器请求的上下文中,则对象具有属性(查询字符串
,表单
等)这是专门为获取这些信息而设计的。这都是在客户端上,而不是服务器上。我们将要编写这篇文章。人们总是想使用Regex,因为不阅读API,他们不知道内置功能是否已经符合所有要求。我们将要编写这篇文章。人们总是想使用Regex,因为ut阅读API时,他们不知道内置功能是否已经符合所有要求。我是RegEx新手,如何在我的示例中使用上面的RegEx?我是RegEx新手,如何在我的示例中使用上面的RegEx?效果很好,有没有办法获取字段类型(用户名或密码),以获得像:username:xxx password:xyz这样的输出效果很好,有没有办法,获得字段类型(username或password),获得像:username:xxx password:xyz这样的输出
String input = @"login_cmd=&login_params=&login_email=my%40mail.de&login_password=TOPsecret&submit..........";
Regex rgx = new Regex(@"(?<=login_email=)([^&]+)|(?<=login_password=)([^&]+)");
foreach (Match m in rgx.Matches(input))
{
if(!m.Groups[1].Value.ToString().Equals(string.Empty))
{
Console.WriteLine("Email : " + m.Groups[1].Value);
}
if(!m.Groups[2].Value.ToString().Equals(string.Empty))
{
Console.WriteLine("Password : " + m.Groups[2].Value);
}
}
(?<=login_email=)[^&]+|(?<=login_password=)[^&]+
string param1 = HttpUtility.ParseQueryString(myUri.Query).Get("login_email");