本帖最后由 java2000_net 于 2008-02-14 13:28:27 编辑

解决方案 »

  1.   

    str = str.replaceAll("\\[b\\](.*?)\\n\\r\\n\\[/b\\]", "<strong>$1\\\n\\\r\\\n</strong>");
      

  2.   

    .*并不能包含对于\r\n的处理,"\\[b\\](.*( |\r|\n|\t)*)\\[/b\\]", "<strong>$1</strong>"
      

  3.   

    加上DOTALL的内嵌表达式“(?s)”就可以了。str.replaceAll("(?s)\\[b\\](.*?)\\[/b\\]", "<strong>$1</strong>");
      

  4.   

    yes . may or may not match line terminators
    str = str.replaceAll("\\[b\\]((.|\n|\r)*?)\\[/b\\]", "<strong>$1</strong>");
      

  5.   


    [code={Java}]{\s A whitespace character: [ \t\n\x0B\f\r] 
    可以使用\s来匹配所有换行空格等特殊字符需要的表达式:.*\s*
    }[/code]
      

  6.   

    str.replaceAll("\\[b\\]([^\\[].*?)\\[/b\\]", "<strong>$1</strong>");
    好久没看了,不知道写的对不对,别笑话阿,关注中.
      

  7.   

    跟bao的意思一样.
    Matcher m = Pattern.compile("\\[b\\](.*?)\\[/b\\]", Pattern.DOTALL).matcher(str);
    str = m.replaceAll("<strong>$1</strong>");
      

  8.   

    呵呵,Java Tutorial上有的http://java.sun.com/docs/books/tutorial/essential/regex/pattern.html
      

  9.   

    上面有个(?i)的例子,有一次看到的,呵呵,我发现还可以组合着用,像(?is)这样。
      

  10.   

    Enter your regex: (?i)foo我晕,我就是为了找这个,花费了我20分钟,气死我了,我放了好多地方,最后发现,感情那个小括号是需要的
    我一直
    ?s 呢,放在了几乎每个地方,都不对,最后发现,还得加上小括号!
      

  11.   

    “(?)”这种形式的是非捕获组,Pattern的API中也有的,你可能当作括号了吧,嘻嘻