PHP - 如何通过 preg_match 获取标签前的文本?

PHP - How Get text before tag By preg_match?

如何通过 preg_match

获得 ("TEXT")
$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

图片:

你需要把.*?部分改成否定字符class。

"([^"]*)"

不过,您也可以利用 DOM 来实现这一点。

$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');

这个简单:

https://regex101.com/r/tI8vQ1/1

/<input value="(\w*)" name="A3">/