快速问答——base64码的正则表达式,立刻给分!

乘思者 2006-04-17 12:44:04
如何写他的分组表达式?

其实就是取出aspx页中的<input type=""hidden""' name=""__VIEWSTATE"" 中的value值而已,只要无误的取出来,立马给分!
...全文
644 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
乘思者 2006-04-18
  • 打赏
  • 举报
回复
谢谢,散分!
代码蜗牛sky 2006-04-17
  • 打赏
  • 举报
回复
Regex re = new Regex("value=\"(?<base64>[a-z,A-Z,0-9,/,+]*[=]{0,})\"");

Match m = re.Match(str);

Console.WriteLine(m.Result("${base64}"));
lengyixin 2006-04-17
  • 打赏
  • 举报
回复
UP^^^^^^
代码蜗牛sky 2006-04-17
  • 打赏
  • 举报
回复
有事做,回来帮你改后面的部分
代码蜗牛sky 2006-04-17
  • 打赏
  • 举报
回复
改成下面这样,=就只能在最后面出现零到任意多个了

MatchCollection mc = Regex.Matches(str,"value=\"[a-z,A-Z,0-9,/,+]*[=]{0,}\"");
乘思者 2006-04-17
  • 打赏
  • 举报
回复
是啊,你没有错,是我没说明白。

大概差不多了,就剩下最后一点了:
=是在最后才能出现的,而你的表达式中,中间出现也可以。
当然,这个不是主要问题,还有个问题是,我要取出来,不是找到(用

public static string GetFormStateValue(string htmlPageString)
{
Regex r = new Regex(@"<input type=""hidden"" name=""__VIEWSTATE"" value=""(?<v>[^""]+)"" />",RegexOptions.Compiled);
//[\w\+/]+[=]*
Match m = r.Match(htmlPageString);
bool v = m.Success;
// if(m.Success)
// {
return m.Result("${v}");
// }
}

取出来)。麻烦下最后一步!(写下Regex的实例化参数吧!^_^




代码蜗牛sky 2006-04-17
  • 打赏
  • 举报
回复
string str = "<input type=\"hidden\" name=\"__VIEWSTATE\" value=\"dDwtMTYyNDM5NzQwMTt0PHA8bDxRYiZkKkU7PjtsPF1hK0VqcFtGP3R1TiU0aXo7Pj47bDxpPDM+Oz47bDx0PDtsPGk8MT47PjtsPHQ8O2w8aTwxMD47aTwxND47aTwxNj47aTwyNT47PjtsPHQ8O2w8aTwxPjs+O2w8dDxwPHA8bDxUZXh0Oz47bDxcPElNRyBpZD0nVmFsaWRJbWFnZScgIGFsaWduPSdhYnNCb3R0b20nIGJvcmRlcj0nMCdcPlw8U0NSSVBUXD5kb2N1bWVudC5mb3Jtc1swXS5WYWxpZEltYWdlLnNyYz0nL1ZhbGlkYXRvci92YWxpZDg4NjQyMDIuYXNweD8nK01hdGgucmFuZG9tKClcPC9TQ1JJUFRcPjs+Pjs+Ozs+Oz4+O3Q8cDw7cDxsPG9uY2xpY2s7PjtsPGphdmFzY3JpcHQ6ZG9jdW1lbnQuZm9ybXNbMF0uYWN0aW9uPSdodHRwczovL2VzYWxlcy4xNjI4OC5jb20vaG9tZXBhZ2UuYXNweCdcOzs+Pj47Oz47dDxwPDtwPGw8b25jbGljazs+O2w8amF2YXNjcmlwdDpkb2N1bWVudC5mb3Jtc1swXS5hY3Rpb249J2hvbWVwYWdlLmFzcHgnXDs7Pj4+Ozs+O3Q8cDw7cDxsPG9uY2xpY2s7PjtsPGZvcm0xLnJlc2V0KClcO3JldHVybiBmYWxzZVw7Oz4+Pjs7Pjs+Pjs+Pjs+PjtsPExvZ2luQ3RybDpCdF9TdWJtaXQ7TG9naW5DdHJsOklCX1Jlc2V0Oz4+poXmvVnxt/qpZBK7q4V8mADMfWs=\" ID=\"Hidden1\"/>";


MatchCollection mc = Regex.Matches(str,"value=\"[a-z,A-Z,0-9,/,+,=]*\"");

foreach(Match m in mc)
{
int index = m.Value.IndexOf("\"")+1;

Console.WriteLine(m.Value.Substring(index,m.Value.Length - index -1));
}
代码蜗牛sky 2006-04-17
  • 打赏
  • 举报
回复
我的答复是根据你一开始的描述来写的

Base64是由英文字母,数字和+,/组成的,改改就行了,等等...
robert2004 2006-04-17
  • 打赏
  • 举报
回复
帮顶接分。。。



=====================================
《《《《《苦海无边 回头无岸》》》》》
=====================================

乘思者 2006-04-17
  • 打赏
  • 举报
回复
to 楼上,误会!误会!
是从字符串

<input type="hidden" name="__VIEWSTATE" value="dDwtMTYyNDM5NzQwMTt0PHA8bDxRYiZkKkU7PjtsPF1hK0VqcFtGP3R1TiU0aXo7Pj47bDxpPDM+Oz47bDx0PDtsPGk8MT47PjtsPHQ8O2w8aTwxMD47aTwxND47aTwxNj47aTwyNT47PjtsPHQ8O2w8aTwxPjs+O2w8dDxwPHA8bDxUZXh0Oz47bDxcPElNRyBpZD0nVmFsaWRJbWFnZScgIGFsaWduPSdhYnNCb3R0b20nIGJvcmRlcj0nMCdcPlw8U0NSSVBUXD5kb2N1bWVudC5mb3Jtc1swXS5WYWxpZEltYWdlLnNyYz0nL1ZhbGlkYXRvci92YWxpZDg4NjQyMDIuYXNweD8nK01hdGgucmFuZG9tKClcPC9TQ1JJUFRcPjs+Pjs+Ozs+Oz4+O3Q8cDw7cDxsPG9uY2xpY2s7PjtsPGphdmFzY3JpcHQ6ZG9jdW1lbnQuZm9ybXNbMF0uYWN0aW9uPSdodHRwczovL2VzYWxlcy4xNjI4OC5jb20vaG9tZXBhZ2UuYXNweCdcOzs+Pj47Oz47dDxwPDtwPGw8b25jbGljazs+O2w8amF2YXNjcmlwdDpkb2N1bWVudC5mb3Jtc1swXS5hY3Rpb249J2hvbWVwYWdlLmFzcHgnXDs7Pj4+Ozs+O3Q8cDw7cDxsPG9uY2xpY2s7PjtsPGZvcm0xLnJlc2V0KClcO3JldHVybiBmYWxzZVw7Oz4+Pjs7Pjs+Pjs+Pjs+PjtsPExvZ2luQ3RybDpCdF9TdWJtaXQ7TG9naW5DdHJsOklCX1Jlc2V0Oz4+poXmvVnxt/qpZBK7q4V8mADMfWs=" ID="Hidden1"/>

中取出value值,而且,你的匹配字符串是不对的,base64码中还有不是单词组成字符的字符,这个也要考虑的。
代码蜗牛sky 2006-04-17
  • 打赏
  • 举报
回复
上面那个搞错了,应该是这样

string str = "<input type=\"\"hidden\"\"' name=\"\"__VIEWSTATE\"\">";

MatchCollection mc = Regex.Matches(str,"\\w*=\"\"\\w*\"\"");

foreach(Match m in mc)
{
int index = m.Value.IndexOf("\"\"")+2;

Console.WriteLine(m.Value.Substring(index,m.Value.Length - index -2));
}

Console.ReadLine();
代码蜗牛sky 2006-04-17
  • 打赏
  • 举报
回复
string str = "<input type=\"\"hidden\"\"' name=\"\"__VIEWSTATE\"\">";

MatchCollection mc = Regex.Matches(str,"\\w*=\"\\w*\"");

foreach(Match m in mc)
{
Console.WriteLine(m.Value);
}

Console.ReadLine();
supergreenbean 2006-04-17
  • 打赏
  • 举报
回复
XmlTextReader.ReadBase64....
乘思者 2006-04-17
  • 打赏
  • 举报
回复
这么个简单的问题都没人会?
还是大家都在中午睡觉?
不会吧!

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧