Tasker Para hablar de todo lo relacionado con la aplicación tasker

Respuesta
 
Herramientas
  #1  
Viejo 31/07/17, 22:41:50
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
Mayor o menor número de coincidencias Regex

Buenas, juraría que lo leí en este foro en alguna ocasión, pero no he sido capaz de encontrar la respuesta.

Creo recordar que a la hora de buscar caracteres utilizando regex, hay una forma de indicar que busque el mayor número de coincidencias o el menor número de coincidencias. A ver si alguien puede echarme un cable con esto, porque no doy con la tecla.

Un saludo.
Responder Con Cita


  #2  
Viejo 02/08/17, 08:20:55
Array

[xs_avatar]
WillyWeb WillyWeb está en línea ahora
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,050
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
Creo que te refieres a los cuantificadores: interrogación, punto y asterisco. Prueba combinando el punto con uno de ellos.

https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular
https://regex101.com
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 02/08/17, 16:01:15
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
 Cita: Originalmente Escrito por WillyWeb Ver Mensaje
Creo que te refieres a los cuantificadores: interrogación, punto y asterisco
Gracias por contestar, pero no es eso.

Por ejemplo, en la cadena:
Cadena (2 dígitos cadena),Cadena (2 dígitos cadena),Cadena (2 dígitos cadena),Cadena (2 dígitos cadena)

Quiero buscar todos los (2 dígitos cadena)

Pero al utilizar \(\d\d.*\), busca desde el primer paréntesis hasta el último.

Al ser cadenas que pueden contener cualquier cantidad y tipo de caracteres, necesito utilizar me veía obligado a utilizar *

Y como he comentado, juraría que alguna vez ley que se podía indicar al regex que busque mayor o menor cantidad de coincidencias

Pero no me hagáis mucho caso, leo tantas cosas que me cuestan entender, que a veces me hago unos luis tremendos.

No obstante después de muchos intentos, lo he conseguido solucionar con una expresión regular un poco más compleja:

\(\d{1,2}\s.+\)

La traducción sería: paréntesis, uno o dos dígitos, espacio, cualquier caracter repetido una o más veces y paréntesis

Última edición por Rsc Día 02/08/17 a las 16:13:52.
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 02/08/17, 17:38:11
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por Rsc Ver Mensaje
Por ejemplo, en la cadena:
Cadena (2 dígitos cadena),Cadena (2 dígitos cadena),Cadena (2 dígitos cadena),Cadena (2 dígitos cadena)
Si son grupos de caracteres separados por comas, siempre puedes utilizar la acción SEPARAR VARIABLE, utilizando la coma como separador. ASí obtienes una matriz con sub-variables. Luego haces un bucle para procesar todos los elementos de la matriz y chequeas si cada uno cumple la coincidencia Regex, anotando esas coincidencias en un contador.

No tengo ni idea de si habría una fórmula Regex que lo haga todo de un solo golpe.
Y tampoco estoy demasiado seguro de haberte entendido... quizá debieras poner un ejemplo.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #5  
Viejo 02/08/17, 19:29:42
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
 Cita: Originalmente Escrito por Caravantes Ver Mensaje
Si son grupos de caracteres separados por comas, siempre puedes utilizar la acción SEPARAR VARIABLE
El problema es que las cadenas de texto, también pueden contener comas.

 Cita: Originalmente Escrito por Caravantes Ver Mensaje
No tengo ni idea de si habría una fórmula Regex que lo haga todo de un solo golpe.
Si, como he comentado, al final lo he logrado con una expresión regex un poco más completa.

 Cita: Originalmente Escrito por Rsc Ver Mensaje
No obstante después de muchos intentos, lo he conseguido solucionar con una expresión regular un poco más compleja:

\(\d{1,2}\s.+\)

La traducción sería: paréntesis, uno o dos dígitos, espacio, cualquier caracter repetido una o más veces y paréntesis
Únicamente que pensé que se podía hacer lo que he comentado en el primer mensaje del hilo, pero el hecho que a vosotros no os suene, me da que pensar que estaba equivocado. No obstante si encuentro alguna información relativa a esto, lo comentaré aquí.

Un saludo y gracias.
Responder Con Cita
  #6  
Viejo 02/08/17, 21:54:27
Array

[xs_avatar]
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Tu operador: Movistar
El carácter ? detrás de un cuantificador hace lo que quieres.
Creo que te refieres a este mensaje, lo leíste aquí en un tema tuyo:

Perfil WhatsTasker - Autovoice
Responder Con Cita
  #7  
Viejo 02/08/17, 23:58:50
Array

[xs_avatar]
mlesir mlesir no está en línea
Usuario muy activo
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Tu operador: Pepephone
Hay una forma de indicarle que se quede con la coincidencia mas corta creo porque por defecto busca la mas larga (creo). Si te interesa dímelo y lo busco.

Enviado desde mi YD201 mediante Tapatalk
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Responder Con Cita
Gracias de parte de:
  #8  
Viejo 03/08/17, 00:10:57
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
@GraphicAdventure justo me refería a ese hilo. Mira que Willyweb lo había dicho desde un principio y yo confundido, le contesté que no.

La confusión viene porque habitualmente le doy otro uso a la interrogación, concretamente la uso detrás de caracteres que quiero que sean opcionales. Y en Wikipedia que es donde suelo recurrir para buscar información sobre regex no hace referencia a lo que tú comentas relativo a la interrogación.

Pero era eso exactamente a lo que me refería. Muchas gracias, un saludo.
Responder Con Cita
  #9  
Viejo 03/08/17, 00:38:00
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
Gracias @mlesir, pero ya me lo ha recordado GraphicAdventure, me refería a lo que comentó en el hilo que ha indicado.
Responder Con Cita
Gracias de parte de:
  #10  
Viejo 03/08/17, 11:09:56
Array

[xs_avatar]
WillyWeb WillyWeb está en línea ahora
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,050
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por Rsc Ver Mensaje
... Mira que Willyweb lo había dicho desde un principio y yo confundido, le contesté que no.
Si es que no me hacéis caso
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Otro software para Android > Tasker



Hora actual: 10:34:27 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /