正则表达式识别编码的字符串

时间:2014-11-02 16:33:09

标签: c# c#-4.0 c#-3.0

我需要在以下实现中获取SAMLRequest的值。要做到这一点,我需要知道适合这个的确切正则表达式。请与我分享确切的正则表达式,以确定SAMLRequest字段的值..

string value = @" <html><head><title>Testing...</title></head><body><form method='POST' name='hiddenform' action='https:/gmail.com'><input type='hidden' name='SAMLRequest' value='SGVsbG8gV29ybGQuLkkgYW0gZ29pbmcgdG8gVFJZIGVuY29kaW5n==' /><input type='hidden' name='RelayState' value='cec5effd-7fb4-40ba-a7ac-795917b5d069' /><noscript><p>Script is disabled. Click Submit to continue.</p><input type='submit' value='Submit' /></noscript></form><script language='javascript'>window.setTimeout('document.forms[0].submit()', 0);</script></body></html> <html><head>";

对此的任何帮助都非常赞赏..

1 个答案:

答案 0 :(得分:1)

正则表达式不是从html中提取信息的非常可靠的方法,不应该使用。让我解释一下。

您可以使用像(?<=name='SAMLRequest' value=')[^']+这样的正则表达式,它似乎适用于此特定测试用例。

然而,这是一个非常脆弱的解决方案。想象一下,如果html从'更改为"或重新排列属性(<input type='hidden' name='SAMLRequest' value='PHNh...更改为<input name="SAMLRequest" type="hidden" value="PHNh...

然后你的小时间节省(通过使用正则表达式而不是HTML解析器)成为麻烦。祝你好运!