Php 我怎么能跳过正则表达式中的某些内容?

Php 我怎么能跳过正则表达式中的某些内容?,php,regex,curl,Php,Regex,Curl,我想查看所有字段输入和文本区域,但我不知道如何查看 在同一代码中一起显示它。 如果我想跳过一些东西,比如我想写 直接输入姓名而不让他检查类型,或者我不希望他向我显示readonly,那么我该怎么做呢 <form method="post" action="" id="submit_form"> <input type="text" name="TITLE" value="" size="40" maxlength="100" class="text" />

我想查看所有字段输入和文本区域,但我不知道如何查看 在同一代码中一起显示它。 如果我想跳过一些东西,比如我想写 直接输入姓名而不让他检查类型,或者我不希望他向我显示readonly,那么我该怎么做呢

  <form method="post" action="" id="submit_form">

  <input type="text" name="TITLE" value="" size="40" maxlength="100" class="text" />

  <textarea name="DESCRIPTION" rows="4" cols="36" class="textarea"></textarea>

  <input type="text" name="DESCRIPTION_limit" size="4" class="limit_field" readonly="readonly" value="250" />

  <textarea name="ARTICLE" id="ARTICLE" rows="6" cols="50" class="textarea"></textarea>

  <input type="text" name="META_KEYWORDS" value="" size="40" maxlength="2000" class="text" /> 

我用$string行测试了这段代码。类型和名称属性可以在输入标记中按任意顺序排列,它会一直搜索,直到读取>字符


. 使用或类似。可能重复@MagnusEriksson我知道,但我必须使用regex。我可以问一下为什么您必须使用regex吗?这只是一个错误的工作工具。这就像告诉木匠,他们必须用扳手敲打钉子。通过一些额外的工作,您可能会让它工作,但这仍然是一个错误的选择。此代码不工作。。。。我不想这样做,例如,我想查找每个有名称或输入名称的代码,但我需要他忽略类型,因为在preg_match中,他按顺序一步一步地开始匹配
preg_match_all('/<(input)[\s](type)="?([^>"]*)"?[\s](name)="?([^>"]*)"?[\s]/', file_get_contents($url), $matches);
echo"<pre>";
print_r($matches);

    $string = '<input type="text" name="TITLE" value="" size="40" maxlength="100" class="text" />';
    preg_match_all('/<input[^>]*?(?:(type)="([^"]*)")|(?:(name)="([^"]*)")/', $string, $matches);
    if($matches[1][0] == "type" && $matches[3][1] == "name"){
    $type = $matches[2][0];
    $name = $matches[4][1];
    }
    elseif($matches[1][0] == "name" && $matches[3][1] == "type"){
    $name = $matches[2][0];
    $type = $matches[4][1];
    }
    else{
        throw new Exception('no input tags with type and name attributes were found!');
    }
    echo $type;
    echo $name;