我是这样(.+?)写的,不支持换行符,请问怎么些才能包括所有字符呢?

解决方案 »

  1.   


    \n  匹配一个换行符。等价于 \x0a 和 \cJ。 
      

  2.   

    比如这篇文章:http://www.top002.com/jianfei/1659.html
    我要读取文章内容!中间包括了很多换行符。
      

  3.   

    preg_match_all("/wenzhangzhongad.js\' language=\'javascript\'><\/script><\/div>([.\n]+)<\/td><\/tr>/",$srting,$test);这样写?还是没有结果
      

  4.   

    1 /(.+)/is 2 /([.\n\r]+)/i
      

  5.   

    1 /(.+)/is 这个可以用!谢谢jakey9826
      

  6.   

    今天也碰到了这个问题,困扰我很久,最后得知,在默认的情况下,字符‘.’不包括换行符。但是可以更改此设置,让字符‘.’表示所以字符:比如:
    Pattern p = Pattern.compile("regex",Pattern.DOTALL);
    p.matcher(content).matches();
    设置了Pattern.DOTALL后,就可以了
      

  7.   

    还是专家来给你解答一下吧!!! 
    C#字符串中的换符实际上是“\r\n”两个字符组成的! 所以要用[\\r][\\n]来提取。 结贴吧!多给我点分谢谢!
      

  8.   

    (\s\S)这个才是真的可以取任何字符加换行符,楼上几位用\n的好像有很多情况没有测试过吧
      

  9.   

    VS2008里用C#,测试出两种方法:1、用13楼的原理,但是应该用方括号:[\s\S]
    Regex.Match(@"abc. \t\r\n123+&中文" , @"[\s\S]+")2、设定RegexOptions为Singleline,
    Regex.Match(@"abc. \t\r\n123+&中文" , ".+" , RegexOptions.Singleline)
    “.” 在一般情况下匹配除 “\n” 以外的任何字符,但在“[]”内只匹配自身,所以“[.\n]”这样的写法无法匹配任意字符;如果将使用RegexOptions.Singleline选项,“.”代表任意字符,包括“\n”,所以有上面第2种写法。这是在VS2008里C#测试的结果,别的环境可能有区别。11楼大哥的方法我没有测试