O seguinte padrão regex funciona para mim e deve ser bem formado para o Regex PCRE:
<img(\s*(?!src)([\w\-])+=([\"\'])[^\"\']+)*\s*\/?>
- Para dividi-lo, comece com o literal
<img
e, em seguida, o\s*
corresponde a qualquer caractere de espaço em branco[\r\n\t\f ]
zero ou tempos ilimitados. - O
(?!src)
é o lookahead negativo, que garante que a stringsrc
seja NOT correspondida. - O segundo grupo de captura
([\w\-])+
procura por[a-zA-Z0-9_]
entre um e ilimitado e é ganancioso (encontre o máximo de vezes possível), e o\-
é um literal procurando um hífen no caso existe em algum lugar dentro do par de tags<img>
. - O
=
é uma pesquisa literal por um sinal de igual. - O terceiro grupo de captura,
([\"\'])[^\"\']+
procura corresponder a uma aspa simples ou dupla, e depois qualquer coisa MAS uma aspa simples ou dupla (uma ou mais vezes) e, em seguida,corresponde o que quer que tenha sido encontrado como o terceiro grupo de captura (uma citação simples ou dupla).
- Finalmente, o
\s*
corresponde a qualquer caractere de espaço em branco[\r\n\t\f ]
zero ou tempos ilimitados, o\/?
corresponde a uma barra exatamente uma vez e o>
é o colchete de fechamento de todo o caso.
Regex é divertido. : -)