特定场景中的正则表达式PHP正则表达式问题

特定场景中的正则表达式PHP正则表达式问题,php,regex,preg-match,preg-match-all,Php,Regex,Preg Match,Preg Match All,有点小问题。我正在尝试使用preg_match_,除了一些正则表达式如何不适用于其中一种情况 <tr> <td class="FieldTitle" valign="top">EAN code:</td> <td class="Field" valign="top">3838942897078</td> </tr> EAN代码: 3838942897078 上面的代码在变量$html中 $table_

有点小问题。我正在尝试使用preg_match_,除了一些正则表达式如何不适用于其中一种情况

<tr>
    <td class="FieldTitle" valign="top">EAN code:</td>
    <td class="Field" valign="top">3838942897078</td>

</tr>

EAN代码:
3838942897078
上面的代码在变量$html中

$table_html = $html;
preg_match_all("'EAN code:</td>\s*<td class=\"Field\" valign=\"top\">(.*?)</td>'si",$table_html,$extract);
$ean = $extract[1][0];
return $ean;
$table_html=$html;
preg_match_all(“'EAN code:\s*(.*?'si)”,$table_html,$extract);
$ean=$extract[1][0];
返回$ean;
返回3838942897078。这是正确的,但是对于不同的场景,相同的代码给出了一个空的var_dump数组$extract。这意味着我没有找到任何匹配项

<div class="Field"><span class="Title">Dimensions of the product (W&#215;H&#215;D): </span>60 &#215; 152,4 &#215; 64 cm</div>
产品尺寸(W×;H×;D):60×;152,4 × 64厘米
以上内容以$html格式显示

及以下代码:

$table_html = $html;
preg_match_all("'Dimensions of the product (W&#215;H&#215;D):</span>(.*?)</div>'si",$table_html,$extract);
var_dump($extract);
$table_html=$html;
preg#u match#u all(“'产品尺寸(W×;H×;D):(*?'si',$table#html,$extract”);
var_dump($摘录);
这表明在转储中,该数组为空。有人能解释一下这个问题吗。我已经试过preg_match和preg_match,但都没有运气。非常感谢你的帮助。提前感谢

这对我很有用:

$table_html = $html;
preg_match_all("'Dimensions of the product \(W&#215;H&#215;D\): </span>(.*?)</div>'si",$table_html,$extract);
var_dump($extract);
$table_html=$html;
preg_match_all(“‘产品尺寸’(W×;H×;D\):(**?’si,$table_html,$extract);
var_dump($摘录);
您需要将
W×;H×;D使用反斜杠
\


正如Sergey所指出的,您的模式中还有一个
,应该用一个空格来替换它,以便与HTML字符串匹配。

停止使用正则表达式解析HTML。使用a为什么你希望他们匹配?你知道你的正则表达式匹配什么吗?您还知道使用合适的HTML解析器会更好吗?尝试将
m
修饰符添加到regexp(
…'si
⇒ <代码>…'sim
)用于多行。嗨,伙计们。。。谢谢你的评论。嗯,我是一个N00b到解析。昨天在DOM上经过了近5个小时的反复试验。我确实放弃了缺乏清晰的文档的做法。关于一个好的基础教程的建议?谢谢@Zougen的回复。我只是在尝试标记的另一部分。但正如你所指出的,真正的问题是括号,必须在括号周围转义。工作非常好。非常感谢。非常感谢。谢谢