把html代码直接转换成正则表达式该怎么弄啊
比如这句:
var filename="教室";
我想写一句完全匹配的正则表达式,Pattern p = Pattern.compile("var filename="教室";");红字标识的是错误的,怎样才正确呢?

解决方案 »

  1.   

    Pattern p = Pattern.compile(Matcher.quoteReplacement("YourString"));
      

  2.   

    不是说正则表达式也可以是字符串吗,比如:
    import java.util.regex.*;public class Test { public static void main(String[] args) {

    String s = "abc";
    Pattern p = Pattern.compile("abc"); 
    Matcher m = p.matcher(s);
    System.out.println(m.matches());

    }}
    这样就是完全匹配的,所以我想把上面的那个字符串也作为正则表达式,可是直接拷贝进去不对,该怎么办啊?
      

  3.   

    Pattern p = Pattern.compile("var filename="教室";"); 因为你引号内还包含了引号..."var filename="+"教室"+";"这样就行了.
      

  4.   

    非常感谢楼上的!可是还是不对。
    我是想从一个jsp页面源代码中提取代码,所以希望能准确定位在
    var filename="教室"; 
    这个位置上,然后提取后面的内容。想以这个字符串做正则表达式,自己又不会--!hehe
      

  5.   

    胡乱试了一通,成功了,大家看看对不对?在JavaScript里面是这样的:
    var filename="教室"; 正则表达式改成了这样:
    Pattern p = Pattern.compile("var filename=\\\"教室\\\";"); 
      

  6.   

    别自己操那份心,Matcher.quoteReplacement("YourString") 会将正则表达式里有特殊含义的字符替换成其转义的形式的。
      

  7.   

    感谢楼上,照你的说法我写了这样一个例子:
    import java.util.regex.*;public class TestRegex { public static void main(String[] args) {

    String ss = "thank.you";
    Pattern p = Pattern.compile(Matcher.quoteReplacement(ss));
    Matcher m = p.matcher(ss);
    System.out.println(m.matches());

    }}
    不知道是不是这个意思?是不是说Matcher.quoteReplacement("YourString") 方法自动把字符串编译成了合法的正则表达式呢?如果是的话,能不能把这个自动编译好的正则表达式显示出来呢,我很好奇呵呵
      

  8.   

    API知道,呵呵~什么时候对方法产生疑惑时就查看API,再不行看源代码