我正在做一些正则表达式在php和匹配使用preg_match();
我有一个文本,可能看起来像这样:
$imy = "...without sophisticated apparatus<div class="caption"><div class="caption-inner">
<img src="http://dev.mysite.org/Heatmap.png" alt="" title="" class="image-thumbnail" />
Caption text</div></div>Some more text...
<img src="http://dev.mysite.org/Heatmap.png" alt="" title="" class="image-thumbnail" />blablah..."
我的目标是选择“div”标记中包含的“img”标记(包括“div”标记),或者如果没有包含在div中,则只选择“img”。在每种情况下,我还希望捕获“img”标记的src属性中包含的地址。
这是我使用的模式:
$imagepattern = '/<div class="caption-inner[^>]+>.*<img\b[^>]*\bsrc="([^">]*)"[^>]*>.*<\/div>(<\/div>)?|<img\b[^>]*\bsrc="([^">]*)"[^>]*>/Us';
它对于“div”封闭的图像非常有效,但是对于无div的图像,我得到了捕获子模式的奇怪结果。
我反复调用preg_match并在将其重新发送到preg_match之前从主题字符串中删除匹配。我对preg_match的调用如下所示:
preg_match($imagepattern,$imy,$image,PREG_OFFSET_CAPTURE)
与无div图像标记匹配时,我在图像数组中得到的结果如下所示:
$image = [0] => Array
(
[0] => <img src="http://dev.molmeth.org/Heatmap.png" alt="" title="" class="image-thumbnail" />
[1] => 1
)
[1] => Array
(
[0] =>
[1] => -1
)
[2] => Array
(
[0] =>
[1] => -1
)
[3] => Array
(
[0] => http://dev.mysite.org/Heatmap.png
[1] => 11
)
$image数组如何具有“2”和“3”键?我不是只有一个子模式吗?这是因为模式中的“或”条件吗?
在preg_match表达式中,您有3个捕获组。
整个表达式由于或而匹配(因为您搜索的是包含div的图像或无div的图像)
对于无div图像,只有捕获组3将填充数据,而捕获组1将填充数据
在使用模式匹配时,此示例可能会被讨论为“gotcha”: 这是一个使用结构模式匹配进行意外捕获的示例。它提供了以下意外输出: 同样的问题也以其他形式出现: 在此示例中,需要有括号,。没有它们,它“捕获”并将str内置类型替换为x的值。 是否有防御性编程实践可以帮助避免这些问题并提供早期检测?
本文向大家介绍未捕获到的SyntaxError:意外标记相关面试题,主要包含被问及未捕获到的SyntaxError:意外标记时的应答技巧和注意事项,需要的朋友参考一下 错误在您的服务器端,当您的服务器端发生错误时,响应将带有html标记“ <”,而在发生错误时php将在错误消息中添加标记。因此,您的json包含html标记,并且由于意外的标记而变得无效。 错误在此数组内 它应该是 (问题来源是描述
问题内容: 我在MooTools脚本中运行AJAX调用,在Firefox中运行正常,但是在Chrome中出现错误,我无法确定原因。注释掉代码以确定错误代码在什么地方不会产生任何结果,我认为这可能与返回JSON有关。在控制台中检查,我看到返回的JSON是这样的: 我没有看到任何问题,为什么会发生此错误? 问题答案: 我刚刚解决了这个问题。导致标准Request调用出现问题的原因是,这是我改用的代码:
问题内容: 我正在尝试开始在ReactJS中构建网站。但是,当我尝试将JS放在单独的文件中时,我开始收到此错误:“ Uncaught SyntaxError:Unexpected token <”。 我尝试添加到JS文件的顶部,但没有解决任何问题。以下是HTML和JS文件。关于出什么问题有什么想法吗? 的HTML JS 编辑:我意识到我需要添加到包括我的着陆器代码的脚本标签。但是,添加并重新加载后
问题内容: 我正在尝试开始在ReactJS中构建网站。但是,当我尝试将JS放在单独的文件中时,我开始收到此错误:“ Uncaught SyntaxError:Unexpected token <”。 我尝试添加到JS文件的顶部,但没有解决任何问题。以下是HTML和JS文件。关于出什么问题有什么想法吗? HTML JS 编辑:我意识到我需要添加到包括我的着陆器代码的脚本标签。但是,添加并重新加载后,
问题内容: 我从网络服务返回的JSON遇到问题。看起来JSON缺少引号,但是当我在JSON中添加引号时,出现错误。这是错误消息:’Uncaught SyntaxError:意外的标记o。当我将字符串记录到控制台时:[对象对象],[对象对象] 这是一些模拟错误的示例代码: 这是相同的代码,在字符串两边用单引号引起来。有用 但是,当我尝试在字符串中添加引号时,就像我在实际代码中似乎需要的那样,它失败了