Tengo muchas instancias del siguiente bloque de código, simplificado:
$image = '';
$name = '';
$link = '';
$role_suffix = '';
$role_name = '';
$notes = '';
Todas estas variables contienen datos diferentes. Necesito convertir mi archivo en una matriz, lo cual puedo hacer con una simple búsqueda y reemplazo, pero primero necesito cambiar $link
con $image
. Así:
$link = '';
$name = '';
$image = '';
$role_suffix = '';
$role_name = '';
$notes = '';
Seguramente debe haber una solución de expresiones regulares para guardar el cambio manual de todas ellas. Intenté piratear las respuestas encontradas en diferentes preguntas, ¡pero la expresión regular no tiene ningún sentido para mí! Jugué con esto (<div>.*?</div>)(\s+)(<span>.*?</span>)
y lo reemplacé con \3\2\1
pero no estoy seguro de la sintaxis correcta.
Respuesta1
- Ctrl+H
- Encontrar que:
(\$image\h*=\h*.+?;)([\s\S]+?)(\$link\h*=\h*.+?;)
- Reemplazar con:
$3$2$1
- comprobar Envolver alrededor
- comprobar expresión regular
- DESMARCAR
. matches newline
- Replace all
Explicación:
( # start group 1
\$image # literally
\h* # 0 or more horizontal spaces
= # equal sign
\h* # 0 or more horizontal spaces
.+? # 1 or more any character but newline, not greedy
; # semicolon
) # end group 1
( # start group 2
[\s\S]+? # 1 or more any character, not greedy
) # end group 2
( # start group 3
\$link # literally
\h* # 0 or more horizontal spaces
= # equal sign
\h* # 0 or more horizontal spaces
.+? # 1 or more any character but newline, not greedy
; # semicolon
) # end group 3
La captura de pantalla: