有一集合
$htmlCount = array(
     "ID_1"      => "ID_1"
    ,"INCH_1_13" => "INCH_1_13"
    ,"INCH_1_14" => "INCH_1_14"
    ,"ID_2"      => "ID_2"
    ,"ID_3"      => "ID_3"
    ,"ID_5_14"   => "ID_5_14"
    ,"ID_5_15"   => "ID_5_15"
    ,"ID_4_6"    => "ID_4_6"
    ,"ID_4_4"    => "ID_4_4"
我遍历这个集合
  foreach($htmlCount as $data) {
            if (eregi("[\b/ID/_]\d",$data)) {
                echo "aaa=>$data<br>";             //当$data 匹配 “ID_数字”时近这里
            }
            if (eregi("[\b/INCH/_]\d",$data)) {
                echo "ccc=>$data<br>";            //当$data 匹配 “INCH_数字_数字”时近这里
            }
            if (eregi("/[ID_]\d$[_]\d$/",$data)){
                echo "bbb=>".$data."<BR>";        //当$data 匹配 “ID_数字_数字”时近这里
            }
        }请问正则我该怎么写啊??

解决方案 »

  1.   


    $htmlCount = array(
         "ID_1"      => "ID_1"
        ,"INCH_1_13" => "INCH_1_13"
        ,"INCH_1_14" => "INCH_1_14"
        ,"ID_2"      => "ID_2"
        ,"ID_3"      => "ID_3"
        ,"ID_5_14"   => "ID_5_14"
        ,"ID_5_15"   => "ID_5_15"
        ,"ID_4_6"    => "ID_4_6"
        ,"ID_4_4"    => "ID_4_4"
    );
    $pattern1 = "/ID_[\d]$/";
    $pattern2 = "/INCH_[\d]+_[\d]+$/";
    $pattern3 = "/ID_[\d]+_[\d]+$/";
    foreach($htmlCount as $data) {

        if (preg_match($pattern1, $data)) {
            echo "aaa=>$data<br>";             //当$data 匹配 “ID_数字”时近这里
        }
        if (preg_match($pattern2, $data)) {
            echo "ccc=>$data<br>";            //当$data 匹配 “INCH_数字_数字”时近这里
        }
        if (preg_match($pattern3, $data)){
            echo "bbb=>".$data."<BR>";        //当$data 匹配 “ID_数字_数字”时近这里
        }
    }output:
    aaa=>ID_1
    ccc=>INCH_1_13
    ccc=>INCH_1_14
    aaa=>ID_2
    aaa=>ID_3
    bbb=>ID_5_14
    bbb=>ID_5_15
    bbb=>ID_4_6
    bbb=>ID_4_4