日期:2014-05-17  浏览次数:20688 次

由于没学过正则表达式,麻烦帮忙处理这个问题。
由于没学过正则表达式,麻烦帮忙处理这个问题。

我拿到String content为以下内容

<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

  </head>
<BODY >
<FORM METHOD=POST ACTION="http://www.gd.aaa.local/pkmslogin.form" name="loginform">
<INPUT TYPE="HIDDEN" NAME="username" SIZE="15" value="000048718"/>
<INPUT TYPE="HIDDEN" NAME="password" SIZE="15" value="abcd">
<INPUT TYPE="HIDDEN" NAME="login-form-type" VALUE="pwd">
</FORM>

<script>
  document.loginform.submit();  
</script>

</BODY>
</html>

 

我如何在java中得到红色字体中的value,这个值不是固定的,可能是数字、字母、字母和数字、字母和数字或-的组合。非常感谢!!


------解决方案--------------------
很遗憾,没有看到你标红了。
------解决方案--------------------
没看见红色字体
如果想要获得页面传递的值
在java servlet 中使用 request.request.getParameter()
例如:想获得<INPUT TYPE="HIDDEN" NAME="username" SIZE="15" value="000048718"/>的值,使用request.getParameter("username") 返回值是一个字符串,根据你的应用需要在把字符串转换成需要的类型
------解决方案--------------------
Java code
package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExDemo {
    public static void main(String[] args) {
        String regex = "<INPUT TYPE=\"(\\w+)\" NAME=\"(\\w+)\" SIZE=\"(\\d+)\" value=\"([a-zA-Z\\d-]+)\"[/]{0,1}>";
        String text = "<html>\n" +
                "  <head>\n" +
                "  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
                "\n" +
                "  </head>\n" +
                "<BODY >\n" +
                "<FORM METHOD=POST ACTION=\"http://www.gd.aaa.local/pkmslogin.form\" name=\"loginform\">\n" +
                "<INPUT TYPE=\"HIDDEN\" NAME=\"username\" SIZE=\"15\" value=\"000048718\">\n" +
                "<INPUT TYPE=\"HIDDEN\" NAME=\"password\" SIZE=\"15\" value=\"abcd\"/>\n" +
                "<INPUT TYPE=\"HIDDEN\" NAME=\"login-form-type\" VALUE=\"pwd\">\n" +
                "</FORM>\n" +
                "\n" +
                "<script>\n" +
                "  document.loginform.submit();   \n" +
                "</script>\n" +
                "\n" +
                "</BODY>\n" +
                "</html>";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);

        while (matcher.find()) {
            System.out.println(matcher.group(4));
        }
    }
}