|
||
|
![]() |
![]() |
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
Herramientas |
#1
|
||||
|
||||
La verdad es que el tema lo tengo solucionado de otra manera pero me jode cantidad no conseguirlo con regex.
Lo que quiero es esto: Tengo una variable (%Var) con cinco lineas de texto separadas por un salto de linea o intro, por ejemplo: %Var= linea uno linea dos linea tres linea cuatro linea cinco Lo que quiero es que mediante la acción de buscar y reemplazar de tasker cada intro que encuentre lo sustituya por " %for:" ( o sea por intro %for: ). La variable %for es la variable que va cogiendo todos los valores de un array que digamos que son A, B,C,D,E. Lo de poder meter un intro en el parámetro para sustituir se puede hacer poniendo una variable que se iguale a intro ya que no te deja escribir un intro en ese parametro. Así que finalmente lo que quiero es que %Var se quede así: A: linea uno B: linea dos C: linea tres.... etc. El problema claro es que como metes un intro como sustitución la siguiente pasada que hace FOR encuentra coincidencia con lo ya sustituido (Lo de meter el intro en la sustitución no es opcional tengo que hacerlo si o si). Por eso lo que quiero es poder decirle que sustituya en la primera pasada la primera coincidencia, en la segunda solo la segunda. Creo que se podría hacer indicando que no lo sustituya si no va precedido ese intro de X intro siendo X una variable a modo de contador que va aumentando. No se si me he explicado muy bien. En resumidas cuentas lo que quiero es poder decirle que solo sustituya el intro si (por ejemplo ) hay antes tres intros. Gracias. EDITO: Se me olvida comentar que solo quiero que sustituya el intro ni lo de antes ni lo de después. Probado los paréntesis {n} los (?=lo que sea) etc y nada no hay manera.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Última edición por mlesir Día 09/12/14 a las 20:25:41. |
|
#2
|
||||
|
||||
Me parece que con expresiones regulares no podrías conseguir esto, al menos no de forma simple.
Personalmente usaría un javascriptlet que haría esto muy rápido: Código:
var txt = global('Var'); var letras = ['A','B','C']; txt = txt.split('\n'); txt = txt.map(function(line, index) { return letras[index] + ': ' + line;}); setGlobal('Var', txt.join('\n')); Código:
var txt = global('Var'); Código:
var letras = ['A','B','C']; Código:
txt = txt.split('\n'); Código:
txt = txt.map(function(line, index) { return letras[index] + ': ' + line;}); Código:
setGlobal('Var', txt.join('\n')); |
Gracias de parte de: | ||
![]() |
![]() |
||||||
|