源html代码:<head>........(head头略)
.........
</head>
保留的正文
<html>
想利用正则将<head>.................</head>这部分去掉。因为search&replace 或者 dw8等软件支持正则表达式,我就写:<head>.*?</head>可是发现是错的?请问正确的如何做呢?谢谢。

解决方案 »

  1.   


    preg_replace("|<head>.*?</head>|is","",$str)
      

  2.   

    <head>(.|\s)*</head>
    DW8测试通过
      

  3.   

    我是想在dreamweaver8 或者 search&replace   的替换里用的正则表达式。而且.*?我试了下好像不能替换一大段包含换行等的字符串
      

  4.   

    谢谢zjerryj。
    我用DW8试了下还是不行:<head> (. ¦\s)* </head>
    不明白问题在哪。已经在DW8内勾选了正则。
      

  5.   

    楼主你的问题在于没有把头和尾绑定。
    ^表示头
    $表示尾
    ^<head>.*</head>$
    你再试试?
    preg_replace("^<head>.*</head>$","",$str)
      

  6.   

    呵呵,不知道dw中的正则用的是什么规范?各位有知道的吗?
    试试这个!
    <head>[\d\D]*?</head> 
      

  7.   

    <head> [\d\D]*? </head>  <head> (. ¦\s)* </head> 
    2楼和8楼的测试通过dw中只 选正则,要手输,不留空格
      

  8.   

    我也疏忽了,.是代表除了换行以外任意字符,所以要加\s,不过<head>(.¦\s)*</head>貌似也通不过,不知道dw怎么想的,反倒是这种<head>[\d\D]*</head>
    <head>[\s\S]*</head>
    <head>[\w\W]*</head>通过没什么问题
      

  9.   

    因为“|”这个符号在发到csdn上的时候被替换掉了