我需要在以下实现中获取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>";
对此的任何帮助都非常赞赏..
答案 0 :(得分:1)
正则表达式不是从html中提取信息的非常可靠的方法,不应该使用。让我解释一下。
您可以使用像(?<=name='SAMLRequest' value=')[^']+
这样的正则表达式,它似乎适用于此特定测试用例。
然而,这是一个非常脆弱的解决方案。想象一下,如果html从'
更改为"
或重新排列属性(<input type='hidden' name='SAMLRequest' value='PHNh...
更改为<input name="SAMLRequest" type="hidden" value="PHNh...
)
然后你的小时间节省(通过使用正则表达式而不是HTML解析器)成为麻烦。祝你好运!