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

字符串中的双引号如何用正则表达式来表示?
<input type="button" value="jakcy">


以上为网页代码,我需要提取value的值,java正则表达式中双引号如果用转义字符,如下
Pattern p = Pattern.compile("value=\"(.*?)\"/>");


但无法匹配到正确的结果,并且发现只有要查找对象中的双引号同样也使用转义字符,这样才能查找到,如下这样就可以
<input type=\"button\" value=\"jakcy\">


但是如果是开头那样就不可以,问题是数据来源本来就那样了,这究竟要怎么办呢?

------解决方案--------------------
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Hello {
    public static void main(String[] args) throws Exception {
        String str = "<input type=\"button\" value=\"jakcy\">";
        Pattern pattern = Pattern.compile("<input type=\"(.+?)\" value=\"(.+?)\">");
        Matcher matcher = pattern.matcher(str);

        while (matcher.find()) {
            System.out.println("Value is: " + matcher.group(2));
        }
    }
}

输出:
Value is: jakcy

------解决方案--------------------
左括号用\\<转义掉