String regex="(?is)\\<a href\\=\"space\\.jsp\"";
Pattern pCode = Pattern.compile(regex);对这段代码的正则表达式有点不明白。
1、(?is)这个什么意思。我在书上没看到这种形式。一般?后面都还跟了个感叹号、等于号之类的。直接一个?开头晓不得啥意思。求解。
2、\\<的正则实际就是\<,这个又有什么意义。还有后面的\=。这两个表达。
谁了解说说啊。

解决方案 »

  1.   

    (?is)开始i的解释是默认情况下,大小写不明感的匹配,只适用于US-ASCII字符集。这个标志能让表达式忽略大小写进行匹配。要想对Unicode字符进行大小不敏感的匹配,只要将UNICODE_CASE与这个标志合起来就行了;
    比如:(?is)java 匹配 java Java JAVA等
    后面加上s则整个表达式的'.'可以匹配任意字符,包括表示一行的结束符。默认情况下,表达式'.'不匹配行的结束符。
    \\<转换是对于那些特殊的字符进行转义,这个JDK文档里面有说明的,一般情况对那些敏感字符都会进行转义,不管神马编程语言都是。\=就是匹配=号,跟那个\\<意义是一样一样的~!!!
      

  2.   


    昨天自己查了Pattern类的源码,意思已经懂了。不过还是谢谢楼上。
    但我有一点不清楚的是。正则中\=和\<其实就是=和<。因为这两个不是特殊字符嘛。既然如此何必这样写喃。
    而不是直接<和=。
      

  3.   

    <和=是特殊符号
    --signature------------------
    http://www.mowker.com/list/