String result=testStr.replaceAll("\\b((?:pageEncoding|encoding)\\s*=\\s*)(?i)\"gb(?:k|2312)\"","$1\"UTF-8\"") .replaceAll("\\b(charset\\s*=\\s*)(?i)gb(?:k|2312)", "$1UTF-8");
Pattern p= Pattern.compile("(charset\\s*=\\s*|pageEncoding\\s*=\\s*\")gbk\"",Pattern.CASE_INSENSITIVE); 。。。。。 Matcher m=p.matcher(str); String result = m.replaceAll("$1UTF-8\"");
你这种情况应该改分两步replace,第一步charset,替换为无双引号的utf-8(不管本身有没有双引号),第二步pageEncoding,替换为有双引号的utf-8(不管本身有没有双引号) 因为你的 "<%@ page contentType=\"text/html; charset=Gbk\" pageEncoding=gbK %>"; pageEncoding后本身就不带双引号 也就是你要$1UTF-8决定是否加双引号
51,412
社区成员
85,987
社区内容
加载中
试试用AI创作助手写篇文章吧