Php 刮除;正则表达式匹配不';行不通

Php 刮除;正则表达式匹配不';行不通,php,regex,Php,Regex,好的,我有一个类似这样的页面(我添加了“scrapehere”字符串以便于导航,这个页面不是100%正确的html,它有两个相同的字段,具有不同的值。不,我无法修复它,因为我使用的是cms,我觉得这对我来说太复杂了): 它怎么了,为什么不直接打印值呢?它是否已经保存在某个地方,但我的回声是错误的?我希望输出仅为值我这样做了: <?php $data = 'scrapehere<input type="hidden" id="_someid" name="_somename" valu

好的,我有一个类似这样的页面(我添加了“scrapehere”字符串以便于导航,这个页面不是100%正确的html,它有两个相同的字段,具有不同的值。不,我无法修复它,因为我使用的是cms,我觉得这对我来说太复杂了):

它怎么了,为什么不直接打印值呢?它是否已经保存在某个地方,但我的回声是错误的?我希望输出仅为

我这样做了:

<?php
$data = 'scrapehere<input type="hidden" id="_someid" name="_somename" value="value"/>';
$regex = '/scrapehere<input type="hidden" id="_someid" name="_somename" value="value"/';
preg_match($regex,$data,$match);
print_r($match);
echo $match[1];
?>

我明白了:

Array
(
    [0] => scrapehere<input type="hidden" id="_someid" name="_somename" value="value"
)
数组
(
[0]=>请点击此处
这两行都输出数据。
var_dump
输出一个数组,其中的第一个元素包含一个输入标记,该标记由于隐藏而不显示在浏览器中


因此,如果您希望输出仅为
'value'
,请从代码中删除
var_dump($match);
,并让
回显
来完成工作。

我认为代码中的array(2) { [0]=> string(74) "scrapehere string(5) "value" } value
<?php
$data = 'scrapehere<input type="hidden" id="_someid" name="_somename" value="value"/>';
$regex = '/scrapehere<input type="hidden" id="_someid" name="_somename" value="value"/';
preg_match($regex,$data,$match);
print_r($match);
echo $match[1];
?>
Array
(
    [0] => scrapehere<input type="hidden" id="_someid" name="_somename" value="value"
)
var_dump($match);
echo $match[1];