whitespace opcional regex: ignorando espaços nos valores do atributo
Na programação, existem cenários em que você precisa lidar com instâncias em que as strings contêm whitespaces opcionais. Isso pode ser desafiador ao escrever expressões regulares para extrair dados com precisão. preg_match ('#& lt; a href = "(.*?)" Title = "(.*?)" " src = "(.*?)" [\ s*] largura = "150" [\ s*] altura = "(.*?)" " $ image = $ imageMatch [4];
Este código extrai o atributo SRC de uma imagem da marcação html. No entanto, ele não consegue lidar com casos em que não há espaço em branco entre certos atributos, como:
# Get Image data preg_match('#<a href="(.*?)" title="(.*?)"><img alt="(.*?)" src="(.*?)"[\s*]width="150"[\s*]height="(.*?)"></a>#', $data, $imagematch); $image = $imagematch[4];& lt; a href = & quot;/wiki/arquivo: Sky1.png " título = "Arquivo: Sky1.png" & gt; & lt; img alt = "Sky1.png" src = "http: //media-mcw.cursecdn.com/thumb/5/56/sky1.png/150px-sky1.png" largura =" 150 " altura = "84" & gt; & lt;/a & gt;
ou
<a href="/wiki/File:Sky1.png" title="File:Sky1.png"><img alt="Sky1.png" src="http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png"width="150" height="84"></a>
& lt; a href = "/wiki/file: Tallgrass.gif" título = "Arquivo: Tallgrass.gif" & gt; & lt; img alt = "Tallgrass.gif" src = "http: //media-mcw.cursecdn.com/3/34/tallgrass.gif" largura = "150" altura = "150" & gt; & lt;/a & gt; para resolver esse problema, podemos usar o espaço de branco opcional regex. Isso nos permite ignorar os espaços entre os caracteres. Aqui está como:
#& lt; a href \ s? = & Quot; (.*?) & Quot; título \ s? = & quot; (.*?) "& gt; & lt; img alt \ s? =" (.*?) " src \ s? = & quot; (.*?) & quot; [\ s*] width \ s? = & quot; antes = significa que um espaço é permitido, mas opcional.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3