如何从带有正则表达式的字符串中获取输入字段名称?

时间:2014-10-21 10:35:22

标签: php regex

我在变量中有一些形式。我有一些带名字的输入字段。如何从该字符串中获取所有name =“”?

现在我正在尝试这个:

 preg_match_all ('/(name="(.*?"))\d/s', $ki, $matches1);

但效果不佳。它给了我一些,它给了我很多不必要的信息。

2 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

preg_match_all( '/name\s*=\s*(?|"(.*?)"|\'(.*?)\')/', $ki, $matches1 );

答案 1 :(得分:0)

您也可以使用数组执行此操作。

即。通过使用爆炸方法

        $content='name="name1" other example text  name="name2" other example text  name="name3" ';         

        $finalResult=array();

        function getBetweenAll($content,$start,$end)
        {   
            $res = explode($start , $content , 2);

            if(isset($res[1]) && $res[1]!='' )
            {
                $value = explode($end , $res[1] , 2);        

                global $finalResult;
                $finalResult[]=$value[0];     

                if(isset($value[1]) && $value[1]!='')
                {
                    $content=$value[1];
                    getBetweenAll($content,$start,$end);
                }
            }      
        }

        $start='name="';
        $end='"';
        getBetweenAll($content,$start,$end);

        echo "<pre>";
        print_r($finalResult);
        echo "</pre>";