创建regexpr以捕获标签imgs中的所有ID时出现问题。我有一个代码:
#<span><img (id=\"([^"]*)\").*><\/span>#
示例:
https://regex101.com/r/aN0uO0/3
仅从第一个标签IMG捕获ID。 感谢。
答案 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
提示:使用解析器几乎总是更好,例如SimpleXML
或DomDocument
。