-1

注意 $pattern 的变化

$subject = '<table width="750"  style="padding-left:150px;"><tr><td width="108"class="fieldname">First Name:</td><td width="381" class="fieldname">';

    $pattern = '/(table)/';
    $matches = array();
    echo preg_match( $pattern, $subject, $matches)."<br/>";
    echo $matches[0]."<br/>";

给我输出
1 个

在 $pattern 中加上 < 前缀表给我输出
1

为什么 ??我不应该得到 < table 作为输出吗?

4

2 回答 2

0

当您回显 preg_match 的结果时,您将得到一个布尔值,因此“1”是人们所期望的。$matches[1] 和 $matches[0] 都会给你“桌子”,所以这是人们所期望的。告诉我们您想要匹配的内容,我们可以提供帮助。

最后一个参数中的 preg_match &modified 变量将为您提供: - [0] 总匹配 - [1] 括号之间的匹配

虽然上面的答案是正确的,但 <(space)table 应该给你一个布尔值 FALSE。如果上面的回答者在他的假设中没有空格是正确的,那么他的回答是正确的,您正在查看浏览器输出而不是源。

于 2012-10-20T03:07:02.113 回答
0

你明白了,但你看不到它(它是 HTML 标记,浏览器试图呈现一个表格)。

利用

 echo htmlentities($matches[0])."<br/>";

...检查比赛。

于 2012-10-20T03:07:17.103 回答