StringRegExp Con variantes Definidas. Ayuda.

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
dacu
Hacker del Foro
Mensajes: 106
Registrado: 20 May 2010, 00:09

StringRegExp Con variantes Definidas. Ayuda.

Mensaje por dacu »

Buenas. Vengo a preguntar lo siguiente.

Me gustaria que en una Misma Expresión regular pudiese optar por poner dos opciones. Lo explicare con un simple codigo.

Código: Seleccionar todo

$HTML_Capturado='<a>Prueba1</a> <a>Prueba2</a> <a>Prueba3</b> <a>Prueba4</k8> <p>Prueba5</a>'

; Si yo Quiero capturar los Pruebas, la única forma que se es la siguiente. 
$Expresion_Regular='<a>(.*?)/<a>

; Pero claro con esto no capturo los otros "Prueba" - A donde quiero llegar es, una forma de expresión regular que me permita decirle
; Mira quiero que me captures lo que este en: 

<a|p>(.*?)</a|b|k8|>

; Es decir Que yo ponga todas las posibilidades que Yo se que me pueden salir. Ni una mas ni una menos. Pero poder indicarlas. Y en caso de que se pueda, Que limite tendria Cuantas variantes puede tener la expresión Regular.

$array = StringRegExp($HTML_Capturado, $Expresion_Regular, 3)

for $i = 0 to UBound($array) - 1
    msgbox(0, "Prueba RegExp con Opción 3 - " & $i, $array[$i])
Next
Creo que Me he explicado Bien. En caso de que no, no dudéis en preguntarme.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: StringRegExp Con variantes Definidas. Ayuda.

Mensaje por Chefito »

Una forma creo que podría ser esta:

Código: Seleccionar todo

$Expresion_Regular='<(?:a|p)>(.*?)</(?:a|b|k8)>'
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 ;).
dacu
Hacker del Foro
Mensajes: 106
Registrado: 20 May 2010, 00:09

Re: StringRegExp Con variantes Definidas. Ayuda.

Mensaje por dacu »

Chefito escribió:Una forma creo que podría ser esta:

Código: Seleccionar todo

$Expresion_Regular='<(?:a|p)>(.*?)</(?:a|b|k8)>'
Saludos.

Muchas gracias Chefito, Cuando tengas tiempo me la explicas, Que quiero entenderlo. No entiendo ?: por lo demás esta todo en orden creo.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: StringRegExp Con variantes Definidas. Ayuda.

Mensaje por Chefito »

Pues simplemente lo que pone la ayuda:
(?: ... ) Non-capturing group. Behaves just like a normal group, but does not record the matching characters in the array nor can the matched text be used for back-referencing.
En resumen, que crea un grupo no capturado. Si no le pones ?: te lo capturaría y te lo mostraría. Es una forma de juntar operaciones y que no se capturen para luego introducirlas en el resultado del array. Por ejemplo, con esto <(?:a|p) le decimos que si encuentra una a o una p después del símbolo <, que siga comprobando la expresión, pero como le hemos puesto ?: antes, no lo captura, no mete esa a o esa p en el array resultante del la función stringregexp. No se si me has entendido. Si no me has entendido simplemente lee esto que te escribo, quita el ?: y mira lo que pasa. Seguro que así lo entiendes bien :smt002 .
Dentro de esto tienes el caso sensitivo (diferencia mayúsculas y minúsculas) con ?-i: , y el caso insensitivo, no las diferencia ?i: . Míralo en la ayuda

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 ;).
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Re: StringRegExp Con variantes Definidas. Ayuda.

Mensaje por jamaro »

¡Esas ER que siempre sorprenden! Gracias Chefito
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: StringRegExp Con variantes Definidas. Ayuda.

Mensaje por Chefito »

Me extraña que te sorprenda jamaro, ya que tu ya sabes bastante de autoit y de expresiones regulares. Yo no soy precisamente un experto en este tema. Considero que ximorro me da mil vueltas en er. Pero siempre que pueda ayudar algo, y mas en expecial con algunas personas (como tu :-P) aqui estare para lo que pueda deciros.

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 ;).
Responder