No entiendo muy bien lo de los símbolos, sé que tienen un significado en StringRegExp, pero sigo sin entenderlo. Lo que quiero más bien es aprender a dominar las expresiones regulares, ya que con la explicación y esos ejemplos no las entiendo muy bien. Gracias nuevamenteFunc Test3()
Local $sInput = '%CommonProgramFiles%\Microsoft Shared\'
Local $sOutput = StringRegExpReplace($sInput, '%([^%]*?)%', 'C:\\WINDOWS\\Some Other Folder$')
Display($sInput, $sOutput)
EndFunc
Comprender el funcionamiento de StringRegExpReplace
Comprender el funcionamiento de StringRegExpReplace
Bueno chicos tengo un nuevo problema. El problema es que me he topado con esta función y la verdad es que me parece interesante, pero hay cosas que no entiendo. por ejemplo con el siguiente ejemplo:
Re: Comprender el funcionamiento de StringRegExpReplace
Hola Enigma:
Las expresiones regulares son algo complejas (al menos para mí), pero además de los tutoriales que hay por internet sobre las expresiones regulares, siempre utilizo algún programa para hacer pruebas de las distintas expresiones antes de utilizarlas en mi código.
Una aplicación que utilizo, y creo que en este caso te puede ser útil es "RegExp Quick Tester" que puedes ver en este hilo del foro inglés:
http://www.autoitscript.com/forum/topic/27025-regexp-quick-tester/
En el caso de tu ejemplo, la expresión: StringRegExpReplace($sInput, '%([^%]*?)%', 'C:\\WINDOWS\\Some Other Folder$')
Sustituye:
%CommonProgramFiles%\Microsoft Shared\
por:
C:\WINDOWS\Some Other Folder$\Microsoft Shared\
para ello, la expresión de búsqueda: %([^%]*?)%, se devuelve lo que está entre paréntesis.
A su vez, se quiere que se devuelva el texto que está entre los símbolos %, en nuestro caso CommonProgramFiles
y lo sustituye por:
C:\\WINDOWS\\Some Other Folder$ (No sé si el $ se utiliza también en la función)
Desglosando un poco: %([^%]*?)%
[^%] Cualquier carácter que no sea %
*? * = Que se repita 0 o más veces. El ? después de *. indica que devuelva la parte más pequeña
( ) Devuelve lo que se encuentra entre paréntesis
% % Toma literalmente esos caracteres de la cadena en la que se busca
Espero haber aclarado un poco tu duda.
De todos modos, en este foro hay expertos en las expresiones regulares que seguro que lo pueden explicar mejor
Las expresiones regulares son algo complejas (al menos para mí), pero además de los tutoriales que hay por internet sobre las expresiones regulares, siempre utilizo algún programa para hacer pruebas de las distintas expresiones antes de utilizarlas en mi código.
Una aplicación que utilizo, y creo que en este caso te puede ser útil es "RegExp Quick Tester" que puedes ver en este hilo del foro inglés:
http://www.autoitscript.com/forum/topic/27025-regexp-quick-tester/
En el caso de tu ejemplo, la expresión: StringRegExpReplace($sInput, '%([^%]*?)%', 'C:\\WINDOWS\\Some Other Folder$')
Sustituye:
%CommonProgramFiles%\Microsoft Shared\
por:
C:\WINDOWS\Some Other Folder$\Microsoft Shared\
para ello, la expresión de búsqueda: %([^%]*?)%, se devuelve lo que está entre paréntesis.
A su vez, se quiere que se devuelva el texto que está entre los símbolos %, en nuestro caso CommonProgramFiles
y lo sustituye por:
C:\\WINDOWS\\Some Other Folder$ (No sé si el $ se utiliza también en la función)
Desglosando un poco: %([^%]*?)%
[^%] Cualquier carácter que no sea %
*? * = Que se repita 0 o más veces. El ? después de *. indica que devuelva la parte más pequeña
( ) Devuelve lo que se encuentra entre paréntesis
% % Toma literalmente esos caracteres de la cadena en la que se busca
Espero haber aclarado un poco tu duda.
De todos modos, en este foro hay expertos en las expresiones regulares que seguro que lo pueden explicar mejor
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Comprender el funcionamiento de StringRegExpReplace
Te recomiendo que leas manuales y practiques mucho (mejor expresiones regulares en c, aunque casi cualquier lenguaje es parecido). Las expresiones regulares es un mundo.
Busca en el buscador del foro y te aparecerán muchísimos post con explicaciones y ejemplos que te ayudarán a comprenderlas mejor. Un ejemplo de Ximorro (hay muchos en el foro): http://www.emesn.com/autoitforum/viewto ... res#p12795
Un pequeño comienzo: http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular
Como dice jamaro, practica con programas que resuelven expresiones regulares. En google hay muchísimos en línea.
Saludos.
Busca en el buscador del foro y te aparecerán muchísimos post con explicaciones y ejemplos que te ayudarán a comprenderlas mejor. Un ejemplo de Ximorro (hay muchos en el foro): http://www.emesn.com/autoitforum/viewto ... res#p12795
Un pequeño comienzo: http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular
Como dice jamaro, practica con programas que resuelven expresiones regulares. En google hay muchísimos en línea.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Comprender el funcionamiento de StringRegExpReplace
Pues muchas gracias a ambos. Practicare mucho esto, me parece bastante interesante conocerlo jeje. Gracias nuevamente