纠正一下:
$arr[0]=开始日期;
$arr[1]=<
$arr[2]=结束日期

解决方案 »

  1.   

    echo preg_replace('/{!\[([0-9\-]+)\]}<{!\[([0-9\-]+)\]}/is','\\1 < \\2','{![2006-8-26]}<{![2006-8-27]}')第一个.
      

  2.   

    preg_match('/{!\[([0-9\-]+)\]}([<>=]+){!\[([0-9\-]+)\]}/is','{![2006-8-26]}<={![2006-8-27]}',$arr);
    echo $arr[1].'<br />';
    echo $arr[2].'<br />';
    echo $arr[3].'<br />';第二个要求.
      

  3.   

    错误,{![]}之间会是数字也可能是中文,并且还有这种情况{![工位号]}>=( {![分机]}!={![手机]} )or{![登录密码]} == {![部门主管]}条件我胡乱写的,但是意思就是要将这个字符串经正则提取后变为工位号>=( 分机!=手机 )or 登录密码 == 部门主管
      

  4.   

    preg_match_all('/([<>=\(\)!]*){!\[(.+?)\]}([<>=\(\)!]*)/is','{![111]}>= {![分机]}!={![手机]} )or{![登录密码]} == {![部门主管]}',$arr);var_dump($arr);
      

  5.   

    那你就帮忙写个将{![]}字符全部除去只留下这个字符串就行了工位号>=( 分机!=手机 )or 登录密码 == 部门主管
      

  6.   

    echo  preg_replace('/([{}\[\]!]*?)/i','','{![工位号]}>=( {![分机]}!={![手机]} )or{![登录密码]} == {![部门主管]}');晕……
    你的要求真是多变呀!