PHP-如何通过preg_匹配在标记之前获取文本?
如何通过preg_match获取(“文本”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"> &
$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">/