solo - regex php string
Regex de espacios en blanco opcional (1)
Añadir un /s?
si un espacio puede ser permitido.
/ s significa espacio en blanco
? Dice que el carácter anterior puede aparecer una vez o no.
Si se permiten más de un espacio y es opcional, use /s*
.
* dice que el carácter anterior puede aparecer cero o más veces.
''#<a href/s?="(.*?)" title/s?="(.*?)"><img alt/s?="(.*?)" src/s?="(.*?)"[/s*]width/s?="150"[/s*]height/s?="(.*?)"></a>#''
permite un espacio opcional entre el nombre del atributo y =.
Si desea un espacio opcional después de =
también, agregue un /s?
después de eso también
Del mismo modo, donde quiera que tenga caracteres opcionales, puede usar ?
si la aparición máxima es 1 o *
si la aparición máxima es ilimitada, siga el carácter opcional.
Y su problema real fue [/s*]
que causa la aparición de un espacio en blanco o un * como los caracteres encerrados en [
y ]
es una clase de caracteres. Una clase de caracteres permite la aparición de cualquiera de sus miembros una vez (así que elimínelos *
) y si agrega un cuantificador ( ?
, +
, *
Etc) después de que ]
cualquiera de los caracteres en la clase de caracteres puede ocurrir de acuerdo con el cuantificador .
Tengo un problema al intentar ignorar los espacios en blanco entre ciertos caracteres. He estado buscando en Google por unos días y parece que no puedo encontrar la solución correcta.
Aquí está mi código:
// Get Image data
preg_match(''#<a href="(.*?)" title="(.*?)"><img alt="(.*?)" src="(.*?)"[/s*]width="150"[/s*]height="(.*?)"></a>#'', $data, $imagematch);
$image = $imagematch[4];
Básicamente estos son algunos de los escenarios que tengo:
<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>
(Note la falta de un espacio entre el ancho = "" y src = "")
Y
<a href="/wiki/File:TallGrass.gif" title="File:TallGrass.gif"><img alt="TallGrass.gif" src="http://media-mcw.cursecdn.com/3/34/TallGrass.gif" width="150"height="150"></a>
(Observe la falta de un espacio entre el ancho = "" y la altura = "".)
¿Hay alguna forma de ignorar el espacio en blanco entre esos personajes? Como no soy un experto en Regex.