PHP中的regexpr用于捕获所有img ID

时间:2016-03-22 16:13:40

标签: php regex

创建regexpr以捕获标签imgs中的所有ID时出现问题。我有一个代码:

#<span><img (id=\"([^"]*)\").*><\/span>#

示例:

https://regex101.com/r/aN0uO0/3

仅从第一个标签IMG捕获ID。 感谢。

2 个答案:

答案 0 :(得分:0)

这是因为您没有搜索globally,要在右侧文本字段中输入 g (在右侧 / 标记之后)。

如果你在php中使用preg_match,请使用preg_match_all,它会起作用。

答案 1 :(得分:0)

如果你急于使用正则表达式,你可能会相处:

<img[^>]*?id=(['"])(.+?)\1

您将在第二组($2)中找到该ID。但是,如果属性中某处有>(在HTML中完全有效),则正则表达式将无法正常工作。在PHP代码中,这将是:

$regex = '~<img[^>]*?id=([\'"])(.+?)\1~';
$string = 'your_string_here';
preg_match_all($regex, $string, $matches, PREG_SET_ORDER);

请参阅an example on regex101.com 提示:使用解析器几乎总是更好,例如SimpleXMLDomDocument