字符串中的双引号如何用正则表达式来表示?
<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
[解决办法]
左括号用\\<转义掉