Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-如何通过preg_匹配在标记之前获取文本?_Php_Regex_Html Parsing_Preg Match - Fatal编程技术网

PHP-如何通过preg_匹配在标记之前获取文本?

PHP-如何通过preg_匹配在标记之前获取文本?,php,regex,html-parsing,preg-match,Php,Regex,Html Parsing,Preg Match,如何通过preg_match获取(“文本” $Text ='<input value="AAA" name="A1"> <input value="BBB" name="A2"> <input value="TEXT" name="A3">'; preg_match('!<input value="(.*?)" name="A3">!', $Text, $Word); echo $Word[1]; //AAA" name="A1"> &

如何通过preg_match获取(“文本”

$Text ='<input value="AAA" name="A1"> <input value="BBB" name="A2"> <input value="TEXT" name="A3">';

preg_match('!<input value="(.*?)" name="A3">!', $Text, $Word);

echo $Word[1];  //AAA" name="A1"> <input value="BBB" name="A2"> <input value="TEXT
$Text='';
预匹配(“!!”、$Text、$Word);

echo$Word[1]//AAA“name=“A1”>您需要将
*?
部分更改为否定字符类

"([^"]*)"
但是,您也可以利用来实现这一点

$doc = DOMDocument::loadHTML('
     <input value="AAA" name="A1">
     <input value="BBB" name="A2">
     <input value="TEXT" name="A3">
');

$xpath = new DOMXPath($doc);
$match = $xpath->query('//input[@name="A3"]');

echo $match->item(0)->getAttribute('value');
$doc=DOMDocument::loadHTML('
');
$xpath=新的DOMXPath($doc);
$match=$xpath->query('//input[@name=“A3”]');
echo$match->item(0)->getAttribute('value');
这很简单:

//

*
替换为
[^”]*
,这意味着不是
请参阅术语挑剔:DOM不是解析器。解析器是libxml。DOM只是节点树的遍历API。
/<input value="(\w*)" name="A3">/