Introducción a las búsquedas GREP con InDesign

GREP son las siglas de General Regular Expression Parser (que vendría a traducirse como Analizador de Expresiones Regulares Generales). Una expresión regular es un modo de describir patrones o condiciones que debe cumplir el texto, y que no tienen por qué incluir necesariamente una palabra o carácter. GREP permite llevar a cabo operaciones de búsqueda y reemplazo de texto basadas en esos patrones y condiciones.

La diferencia fundamental entre una búsqueda de texto y una búsqueda GREP es que la primera busca un texto exacto (literal) y lo reemplaza por otro texto exacto. Por ejemplo, reemplazar todas las instancias de “jarra” por “jarrón”. Sin embargo, una búsqueda GREP puede buscar cualquier instancia de “jarra”, “jarrón”, “vasija” o “ánfora” y reemplazarlas por “recipiente” en una única operación Buscar/Cambiar. GREP busca, por lo tanto, patrones. Por ejemplo, ¿cómo buscarías un párrafo? Un párrafo es cualquier número de caracteres seguidos por un retorno. Eso es un patrón. Dos párrafos serían un conjunto de caracteres seguidos de un retorno seguido de otro conjunto de caracteres seguidos de otro retorno. A GREP no le interesa qué letras o palabras componen los dos párrafos; a GREP sólo le interesa el patrón.

De hecho, probablemente hayas estado utilizando patrones GREP ¡sin saberlo! En el cuadro de diálogo Buscar/Cambiar, cada vez que marcas las opciones “coincidir Mayúsculas/minúsculas” o “sólo palabras completas” se activan ciertos patrones de búsqueda idénticos a los utilizados por GREP. Supón que estás buscando “gata”. Si no marcas la casilla “coincidir Mayúsculas/minúsculas” estarás utilizando un patrón de búsqueda que vendría a decir: busca G o g, A o a, T o t y A o a. Si marcas la casilla “sólo palabras completas”, entonces buscará el conjunto de caracteres “gata” rodeado de espacios en blanco o signos de puntuación; en este caso, el programa utiliza caracteres especiales, denominados metacaracteres, situados antes y después de la palabra, para efectuar correctamente la búsqueda.

Lo que hace de GREP un sistema poco intuitivo al principio es la necesidad de describir un patrón de búsqueda. Considera el siguiente ejemplo: buscar palabras que empicen por la letra “M” y acaben por la letra “o”, con cualquier número de letras entre ambas. ¿Qué es exactamente lo que hay que introducir entre la “M” y la “o” que signifique “cualquier número de letras”? Pues eso será lo que aprenderás en este primer artículo.

Cómo utilizar GREP en InDesign

La segunda pestaña del cuadro de diálogo Buscar/Cambiar cotiene las opciones de búsqueda GREP.

Figura 1. Opciones GREP del cuadro de diálogo Buscar/Cambiar

Figura 1. Opciones GREP del cuadro de diálogo Buscar/Cambiar

Escribir patrones de búsqueda

Existen dos formas de escribir un patrón de búsqueda: escribir directamente los caracteres especiales y cadenas de texto o utilizar las opciones que ofrece el menú desplegable situado a la derecha de los cuadros “Buscar” y “Cambiar a”. Mi consejo es que empieces a familiarizarte con las diferentes opciones de búsqueda que ofrece el programa mediante la utilización del menú desplegable, pero conforme vayas dominando la técnica, verás que resulta mucho más sencillo escribir directamente el patrón de búsqueda. Puedes imprimir como referencia la página de ayuda del programa que muestra todos los caracteres especiales así como una breve explicación de su funcionamiento. Con el tiempo, cuando te hayas convertido en un auténtico maestro, descubrirás con asombro que la implementación de búsquedas GREP es todavía más potente de lo que a simple vista deja entrever la escueta ayuda del programa en lo referente a este tema.

Metacaracteres

La gran mayoría de caracteres alfanuméricos y signos de puntuación que introduzcas en el cuadro de búsqueda coinciden con sigo mismos. Es decir, si escribes “abc” como patrón de búsqueda, InDesign encontrará los caracteres a, b y c. Se dice, por tanto, que tienen un significado literal. Sin embargo, existe otro grupo de caracteres, denominados metacaracteres, sin significado literal, que se utilizan para indicar al programa diferentes opciones de búsqueda. Por ejemplo, el signo + se utiliza en GREP para indicar que la búsqueda puede contener uno o más caracteres situados inmediatamente a la izquierda del signo. El patrón 1+ encontrará el número 1 una o más veces: 1, 11, 1111 o 1111.

¿Qué sucede cuando queremos incluir el propio signo + como un carácter literal del patrón de búsqueda? Debemos indicar al programa que deje de funcionar como metacarácter. Se utiliza otro metacarácter, la contrabarra (). Y como es posible que alguna vez desees buscar a la propia contrabarra, bastará con introducir dos veces seguidas este metacarácter.

Así, para incluir el signo + en la búsqueda, utilizarás el patrón +. Para buscar la contrabarra, el patrón será \. Para buscar 1+1 debes introducir el siguiente patrón de búsqueda: 1+1. Y para buscar 1+1 o 1+11 el patrón será 1+1+

Los distintos metacaracteres llevan a cabo diferentes grupos de funciones, de manera que pueden ser organizados por tipos: comodines, metacaracteres que controlan la ubicación de otros caracteres y metacaracteres que controlan la repetición de otros caracteres.

Comodines

Un comodín es un metacarácter que se utiliza para encontrar otros caracteres. Los comodines más utilizados son los siguientes:

Metacarácter Encuentra
. Cualquier carácter exceptuando el fin de párrafo
^ Principio de línea
$ Fin de línea

Ser capaz de especificar la ubicación del patrón de búsqueda es una de las características más útiles de GREP. Por ejemplo, imagina que deseas encontrar todos los diálogos de Arturo en el siguiente texto:

  • Arturo: ¿Cuánto te debo?
  • Marta: Ya sabes que invita la casa, Arturo.
  • Arturo: Pero es que esta vez quiero pagar.
  • Marta: Si insistes…

Si haces una búsqueda normal e introduces Arturo, InDesign se detendrá en las líneas 1, 2 y 3, cada vez que encuentre la palabra Arturo. Pero si utilizas el panel GREP e introduces el patrón ^Arturo, InDesign sólo señalará las líneas 1 y 3, puesto que sólo en ellas la palabra Arturo se encuentra a principio de párrafo.

Ten en cuenra que ^ y $ no encuentran ningún carácter, solo la posición del texto. Si utilizas el metacarácter $ detrás de una palabra, el resultado será la palabra situada justo ANTES del final de la línea. Si deseas incluir también el carácter de retorno de carro, deberás utilizar r al final de la palabra.

Puedes combinar los dos metacaracteres de ubicación en un misma búsqueda para encontrar sólo palabras o frases completas. Por ejemplo:

^patata$

Sólo se detendrá en la segunda línea del siguiente texto:

  • patatero
  • patata
  • patata frita

Otros metacaracteres de ubicación

A parte de los ya mencionados en el apartado anterior, existen otros cuatro metacaracteres posicionales, a saber:

Metacarácter Encuentra
< Inicio de palabra
> Fin de palabra
b Límite de palabra. Es decir, cualquier posición que delimite una palabra
B Contrario de límite de palabra. Cualquier posición que no esté dentro del límite de palabra

Veamos unos ejemplos de estos metacaracteres en acción.

  • La búsqueda: bfocab
  • Encontrará: pato foca pingüino enfocar
  • La búsqueda: bJonhsonb
  • Encontrará: la taberna Jonhson’s Inn
  • La búsqueda: Bfoca
  • Encontrará: la foca no puede enfocar porque no tiene dedos
  • La búsqueda: bfocaB
  • Encontrará: foca focalizado enfocar

Metacaracteres delimitadores del rango de caracteres

Los corchetes [ y ] permiten especificar un rango o conjunto de caracteres a encontrar. Para excluir o ignorar un conjunto de caracteres de la búsqueda, debes incluir el acento circunflejo ^ justo después del corchete de apertura. Para especificar un rango de caracteres, utiliza el guión -. Por ejemplo:

  • La búsqueda: [abc]
  • Encontrará: cualquiera de los caracteres a, b, c
  • La búsqueda: [^abc]
  • Encontrará: cualquier carácter excepto a, b, c
  • La búsqueda: [a-z]
  • Encontrará: cualquier carácter comprendido entre la a y la z.

Puedes utilizar cualquier número de caracteres o rangos entre los corchetes. Por ejemplo:

  • La búsqueda: [aeiou]
  • Encontrará: cualquier vocal
  • La búsqueda: [^aeiou]
  • Encontrará: cualquier carácter que no sea una vocal
, , ,
Entrada anterior
Vista rápida para documentos CS4 y EPS
Entrada siguiente
Creación de reventados con Illustrator

Entradas relacionadas

Seminario de creación de publicaciones con EasyCatalog

Seminario de creación automatizada de publicaciones con InDesign y EasyCatalog

Hemos estado utilizando y enseñando EasyCatalog durante más de 3 años, y no nos deja de sorprender por su flexibilidad, potencia y facilidad de uso. Este increíble plug-in le permite publicar en InDesign directamente desde una base de datos, una hoja de cálculo o un texto separado por tabuladores. El resultado será un documento siempre actualizado con los datos más recientes. Y lo mejor de todo: ¡no son necesarios conocimientos previos de programación!

Leer Más

43 Comentarios. Dejar nuevo

En primer lugar, gracias por compartir esta información sobre las búsquedas GREP en InDesign, que es un tema poco documentado en español.

Me llamó la atención algo que se menciona en el primer párrafo del artículo:

“Con GREP podrás buscar y manipular patrones de texto a tu antojo: ordenar alfabéticamente una lista …”

Hasta donde yo sé, una simple operación de búsqueda y cambio con expresiones regulares no basta para ordenar listas alfabéticamente. Quisiera pedir al autor del artículo que aclare más esto, o cuando menos dar como ejemplo alguna expresión regular que permita ordenar alfabéticamente.

Responder
    F. Javier Gómez Laínez
    18th junio 2009 11:53 pm

    Efectivamente, no existe ninguna expresión GREP que de por sí sea capaz de ordenar alfabéticamente una lista… Sin embargo, esta frase, tal vez demasiado “espectacular” y poco afortunada, la escribí justo después de usar una expresión GREP que luego me permitió ordenar alfabéticamente una lista de nombres. A saber. Contaba yo con una lista de autores del tipo: Carlos Pérez, Juan González, etc. Con GREP cambié el orden, de manera que la lista quedó como Pérez, Carlos; González, Juan; y así sucesivamente. Luego, bastó con utilizar el script SortParagraphs.jsx (por defecto en la instalación) y ¡listos!

    Responder
      Alejandro Santacroce
      1st noviembre 2015 11:38 am

      Hola Javier, muchas gracias por el aporte.
      Estoy tratando justamente de hacer algo parecido a tu ejemplo (cambiar Carlos Pérez por Pérez, Carlos) pero hasta ahora no le encuentro solución.
      Específicamente estoy haciendo un diccionario Alemán-Español y quisiera invertirlo a Español-Alemán… estoy seguro que se debe poder, pero cómo!? Seguro me podrás ayudar, desde ya muchas gracias.
      Te paso un extracto para que puedas ver concretamente de qué hablo:
      Herausgeber (der)= editor, emisor.
      hervorgehoben= poner de relieve, destacar.
      Hochachse= eje vertical.
      inwieweit= en qué medida, hasta dónde.
      Karo-Muster= cuadriculado.

      Responder

y el II para cuando, excelente introducción a estilos GREP, espero en realidad el aporte II, saludos desde México

Responder

Hola, me ha parecido muy interesante tu información. Me preguntaba si tenías idea de cómo invertir en un libro las referencias y el punto. Espero poder explicarme: este libro está lleno de referencias de una a diez cifras y cada una puede tener uno o dos dígitos.

Ejemplo:

ventrículoˇ2, 34, 8.

Lo que yo quisiera es cambiar el punto antes de los dígitos:

ventrículo.ˇ2, 34, 8

He buscado mil y un formas de hacer este cambio de una sola vez, pero entonces si paso el punto antes, éste se pone en superíndice y el último dígito queda en posición normal.

Creo que es importante señalar que deberá quedar punto y seguido, o punto y aparte dependiendo del cuál sea su caso.

Espero puedas apoyarme, gracias.

Responder

    Puedes hacer un buscar/cambiar con GREP y aplicar un estilo anidado para que no quede el punto como superíndice, o bien hacer posteriormente un buscar/cambiar por formato, de manera que cada vez que encuentre un punto como superíndice lo deje como texto normal.

    Responder

Hola, antes que nada muy buen aporte.
Me parece muy interesante y por lo mismo quisiera me orientaras. Necesito sistituir una silaba: fi por la misma fi pero con el tracking más amplio. ¿Cómo le puedo hacer?

Muchas gracias, saludos!!

Responder

    Dos formas de hacerlo:

    1) creas un estilo de carácter con el ajuste de tracking que te interese y luego haces un estilo GREP que lo aplique. El término a buscar debe ser este:

    f(?=i)

    De esta manera, estás buscando una f seguida de una i, pero no incluyes la i, de manera que el estilo de carácter con el tracking modificado sólo se aplicará a la letra f, aumentando de este modo el espacio entre la f y la i (si no lo haces así, y buscas directamente “fi”, entonces también aumentarás el espacio entre la letra i y la que le siga).

    2) Buscar una “fi” y reemplazar por “f” seguido de espacio ultrafino seguido de “i”

    Responder

Hola. Muy buen documento, me ha sido muy útil.
¿Me podrías ayudar con algo?
Necesito encontrar en un documento todas las palabras que, al final de una linea de texto sean iguales. Es decir:

Logró exitosamente su cometido captando la atención de todos los primeros minutos minutos ese tiempo la gente comenzó a distraerse: a hablar entre ellos, minutos
errores en el folleto del minutos

Encontrar todas las palabras repetidas (en este caso minutos) al final de las lineas de texto. Pero no quiero encontrar la palabra minutos, sino las palabras repetidas al final de las lineas. Ojala me puedas ayudar. Saludos.

Responder

    Me temo que no entiendo lo que quieres hacer, ¿tal vez porque no has puesto un punto al final de cada frase? Por lo que entiendo, lo que quieres buscar es ¿todas las palabras que se repiten al final de un párrafo y que son consecutivas?.

    Por ejemplo:

    El oso y el ratón
    el gato y el ratón

    En este caso, quieres encontrar la palabra ratón ¿no?

    Y si la encuentras, ¿qué quieres hacer con ella? ¿O quieres ir encontrando una a una y luego decidir qué hacer con ella?

    Responder

Hola a todos, muchas gracias por lo aprendido hasta acá.
Tengo un problema particular que quizá se pueda resolver con GREP. Estoy haciendo un pequeño diccionario Alemán-Español para un examen y me gustaría invertir el orden (a Español-Alemán) automáticamente, el tema que la solución Find what: (w+)s(w+) Change to: $2, $1 que resuelve el ejemplo “Juan Pérez > Pérez, Juan” arriba mencionado no me alcanza porque las definiciones son más complejas, por ejemplo:
—————————————————–
Haupteil (der)= parte principal.
herausgeben= publicado, editado.
Herausgeber (der)= editor, emisor.
hervorgehoben= poner de relieve, destacar.
Hochachse= eje vertical.
inwieweit= en qué medida, hasta dónde.
Karo-Muster= cuadriculado.
—————————————————–
O sea, cómo le diría a GREP que todo lo que esta ante del signo igual me lo pase del otro lado?
Alguna idea?
Desde ya muchas gracias.

Responder

    Lo primero que debes hacer es comprobar que encuentras correctamente lo que estás buscando. Y lo que estás buscando es:

    “uno o más caracteres a principio de párrafo, seguidos de un signo igual, seguidos de un espacio en blanco, seguidos de uno o más caracteres, seguidos de un punto, seguidos de un retorno de carro”

    Eso en GREP es escribe así:

    ^(.+?)= (.+?).r

    Ahora, quieres cambiar el orden de la secuencia, por lo tanto, en el apartado de “Cambiar a” debes escribir:

    $2= $1.

    Y ya está.

    Responder

Javier, muchísimas gracias.
Funciona perfectamente y me hiciste ahorrar mucho tiempo.
Lo único que le agregué fue un retorno de carro al “Cambiar a” para que me respetara el formato: $2=$1.r
Esta mañana al ver tu respuesta escribí para agradecerte además por la rapidez con que me contestaste pero se ve que no se guardó el comentario.
Otra vez: muchas gracias.

Responder

Buenas tardes, a ver si me puedes ayudar:
Tengo que modificar los números de página de un índice pues al remaquetarlo con ID justo a partir de la página 539 y hasta el final tengo que restarle 8, o sea, que la página 539 será la 531, la 540 será la 532… y así hasta el final. ¿Se puede automatizar la tarea con GREP?
Muchas gracias

Responder
    F. Javier Gómez Laínez
    13th octubre 2016 9:37 am

    GREP no permite hacer operaciones aritméticas, así que tendrás que exportar el índice a un programa que sí lo permita y hacer allí la suma del número 8. Como un índice, si está bien hecho, consiste en texto separado por un tabulador, basta exportarlo como texto plano y abrirlo con Excel. Allí puedes hacer la fórmula que necesites e importar nuevamente el texto del índice, aplicarle el formato de párrafo o carácter que necesites, y a correr.

    Si no has modificado manualmente en exceso el índice, entonces lo mejor es actualizarlo directamente en InDesign y dejar que el programa coloque el número de página auténtico en cada entrada. Es lo más rápido, eficiente y correcto.

    Responder

Hola.
¿Tal vez me podrías ayudar? De antemano gracias.
Tengo un listado que esta así:
2735018-A (Inf. Der.)
X

Y quiero cambiar la ubicación así:
X
2735018-A (Inf. Der.)

Nota: Mi primer renglón cambia, en ocaciones son números, palabras, con o sin guión al igual que el paréntesis. La X es siempre constante en mi listado y de preferencia deseo eliminarla. La X tiene un color gris de fondo y esta dentro de un contenedor o cuadro de texto. (Donde quiero poner el primer renglón).

Responder
    F. Javier Gómez Laínez
    4th noviembre 2016 8:30 am

    Buscar la primera porción del texto es factible con GREP. Sin embargo, esa X que está en su propio marco de imagen, y que entiendo que es un objeto anclado… Debería ver el documento para buscar alguna pauta que identifique a esa X con fondo gris. Para cambiar el orden de lo encontrado, primero hay que colocar entre paréntesis las partes del texto a buscar. Por ejemplo (primero)(segundo). Si ahora queremos que InDesign cambie el orden, en el cuadro de reemplazar pondremos $2 $1, que significa, primero me colocas el segundo término y después el primero.
    Otra cosa, los paréntesis son caracteres reservados en GREP, así que para encontrar algo entre paréntesis debes escaparlos, y lo mismo con el punto: \(Inf\. Der\.\)

    Responder

Hola, que tal.
Creo que estoy haciendo algo mal, porque no obtengo los resultados esperados. En que correo puedo enviarte el archivo muestra. Disculpa la molestia, soy nueva en este tema. Gracias por tus atenciones.

Responder

Hola,
Muy interesante artículo.
Yo estoy intentando poner un punto al final de cada párrafo pero no soy capaz. Me cuesta entender la lógica de los buscadores de ubicación.
Gracias

Responder
    F. Javier Gómez Laínez
    26th agosto 2018 11:39 am

    En el caso del punto, como se trata de un carácter reservado, debes “escaparlo” con una contrabarra: \.

    Responder
Raul Poloniecki
14th octubre 2018 4:12 am

Hola, tu artículo está super útil quisiera saber si me podrían apoyar con una duda; necesito cambiar el espacio por un espacio fino entre cifras de cuatro o más caracteres, por ejemplo las cifras 18 909.
Agradecería mucho la respuesta

Responder
    F. Javier Gómez Laínez
    14th octubre 2018 9:57 am

    Lo más sencillo y práctico es utilizar un estilo de párrafo GREP. Para eso, debes hacer lo siguiente:

    1. en el apartado “Estilo”, define un estilo de carácter que aplique un tracking de 200 o más
    2. en el apartado “En texto”, escribe lo siguiente: \d(?=(\d\d\d)+\D)

    De esta forma tendrás un estilo de párrafo que aplicará automáticamente un espacio entre grupos de 3 dígitos.

    Responder

Buenos días, tengo un documento de mas de 6000 páginas, donde el texto viene de la siguiente manera:
13Y vino uno de los que escaparon, y lo anunció a Abram el hebreo, que habitaba en el encinar de Mamre el amorreo, hermano de Escol y hermano de Aner, los cuales eran aliados de Abram. 14Oyó Abram que su pariente estaba prisionero, y armó a sus criados, los nacidos en su casa, trescientos dieciocho, y los siguió hasta Dan. 15Y cayó sobre ellos de noche, él y sus siervos, y les atacó, y les fue siguiendo hasta Hoba al norte de Damasco. 16Y recobró todos los bienes, y también a Lot su pariente y sus bienes, y a las mujeres y demás gente.

Melquisedec bendice a Abram

17Cuando volvía de la derrota de Quedorlaomer y de los reyes que con él estaban, salió el rey de Sodoma a recibirlo al valle de Save, que es el Valle del Rey. 18Entonces Melquisedec, rey de Salem y sacerdote del Dios Altísimo, sacó pan y vino; 19y le bendijo, diciendo: Bendito sea Abram del Dios Altísimo, creador de los cielos y de la tierra; 20y bendito sea el Dios Altísimo, que entregó tus enemigos en tu mano. Y le dio Abram los diezmos de todo. 21Entonces el rey de Sodoma dijo a Abram: Dame las personas, y toma para ti los bienes. 22Y respondió Abram al rey de Sodoma: He alzado mi mano a Javé Dios Altísimo, creador de los cielos y de la tierra, 23que desde un hilo hasta una correa de calzado, nada tomaré de todo lo que es tuyo, para que no digas: Yo enriquecí a Abram; 24excepto solamente lo que comieron los jóvenes, y la parte de los varones que fueron conmigo, Aner, Escol y Mamre, los cuales tomarán su parte.

hay alguna manera de que donde esta un número seguido de una palabra; ese número me lo ponga en superíndice automaticamente en todo el documento????

Responder
    F. Javier Gómez Laínez
    26th noviembre 2018 3:05 pm

    Si. Utilizando un estilo GREP. Para ello, defina primero un estilo de carácter que aplique el formato “superíndice” al que llamaremos, “estilo_cifra”. Aplicaremos este estilo cada vez que encontremos dos o más dígitos seguidos de uno o más caracteres (letras). Para eso, basta con crear un estilo GREP en el estilo de párrafo principal. En el apartado “Aplicar estilo” seleccione el estilo “estilo_cifra”. En el apartado “En texto:”, utilice esta cadena de búsqueda: (\d+)(?=.+?). En este caso, estamos usando el operador “lookahead” positivo, es decir, estamos buscando los dos dígitos pero sólo nos interesan si luego le siguen dos caracteres o más.

    Responder

Buenos días, quisiera saber si esto se puede hacer con un script:
que en el documento cada vez que encuentre un número seguido de un retorno de carro,
le coloque antes del número la palabra capítulo.
espero me haya echo enternder.

Responder
    F. Javier Gómez Laínez
    26th noviembre 2018 3:08 pm

    No es necesario un Script. Basta con utilizar un comando “buscar/cambiar” en modo GREP. Para ello, utilice el siguiente código:

    1. En el cuadro “Buscar“, introducir el texto: (\d+\r)
    2. En el cuadro “Cambiar a“, escribir Capítulo $1
    Responder
      Fabián Andrés
      5th diciembre 2018 1:39 pm

      Gracias por responder.
      no se que este haciendo mal, con el primer código efectivamente me busca los números seguidos con un retorno de carro.
      pero en “cambiar a”, si escribo la palabra capitulo, pero quiero que me deje el numero que encontró.
      es decir un ejemplo.
      encontro el
      7
      y que me lo cambie por CAPITULO 7; asi sucesivamente de manera automática.
      si es posible??
      de ante mano muchas gracias.

      Responder

Buenos días, no se como lograr que por medio de un script, cuando le de buscar números sueltos, me le adicione una palabra; me explico:
el texto viene algo así

4
mksjjfjsfoejofejofjeofjeo

y necesito que cuando haya un numero le coloque la palabra capítulo seguido del número.

osea que debería quedar algo así

CAPÍTULO 4
mksjjfjsfoejofejofjeofjeo

Responder

Buenas tardes, tengo un pregunta; como hacer por medio de un código GREP que me busque los espacios en blanco de no separación y los elimine.
(~S +) con este logro que me los ubique, pero no se como decirle que los borre o elimine.
Gracias.

Responder
    F. Javier Gómez Laínez
    21st diciembre 2018 5:03 pm

    Muy fácil. En el cuadro de búsqueda pon ~S +, y en el de reemplazar lo dejas en blanco. Luego le dices Buscar/Reemplazar todo y listos.

    Responder

Primero que todo darte las gracias por tan buenos aportes; feliz navidad ,feliz año nuevo y felices reyes.
Espero me puedas orientar con el inconveniente que tengo.
Tengo un texto bastante extenso y necesito que el texto que se encuentre dentro de paréntesis (), que pueden ser letras o números, poderles dar un estilo de párrafo.
al ser tan extenso el texto de mas de 1500 paginas, no se si se pueda hacer de una manera automatizada.
De ante mano muchas gracias

Responder
    F. Javier Gómez Laínez
    28th diciembre 2018 5:22 pm

    Felices Fiestas! Por suerte, lo que más le gusta a las búsquedas GREP es un patrón repetido, como en su caso un texto dentro de un par de paréntesis. La clave de esta búsqueda está en encontrar (y después sustituir) SÓLO el texto entre paréntesis, sin incluir el propio paréntesis. Además, deberá tener en cuenta que los paréntesis son caracteres reservados de GREP, por lo que es necesario “escaparlos”. Para buscar literalmente un paréntesis, deberá usar “\(“, siendo la barra invertida “\” el carácter de escape.

    Como no quiere incluir los paréntesis como parte del texto encontrado, usaremos un truco que consiste en utilizar modificadores “lookbehind” y “lookahead“, que se podrían traducir por “texto precedido” y “texto seguido de”, respectivamente.

    El modificador “lookbehind positivo” se escribe así: (?< =). Como lo que queremos encontrar es un paréntesis, y hay que escaparlo, la expresión completa será así: (?< =\(). Observe cómo hemos incluido el paréntesis de apertura \( justo después del signo igual.

    Para usar lookahead positivo, usamos la siguiente expresión: (?=). Y como lo que queremos es encontrar el carácter de cierre de paréntesis, deberemos usar la expresión de esta forma: (?=\)).

    Para encontrar uno o más caracteres, debe usar la expresión: .+, que significa: un carácter seguido de uno o más caracteres. Como GREP es "avaricioso", encontrará TODOS los caracteres entre un paréntesis de apertura y otro de cierre. Por ejemplo, en el siguiente texto:

    (Texto entre paréntesis) y este no lo está (pero este vuelve a estarlo).

    Encontrará exactamente esto: Texto entre paréntesis) y este no lo está (pero este vuelve a estarlo. Esto es así porque, efectivamente, hay un paréntesis de apertura y otro de cierre en la cadena devuelta. Para limitar la "avaricia" de GREP, usamos el signo de interrogación, de forma que: .+? significa "detente en la primera cadena de texto que coincida con la expresión de búsqueda.

    La cadena de búsqueda completa quedará, pues, de la siguiente manera: (?< =\().+?(?=\))

    Ahora basta escribir $0 en el cuadro de "Cambiar a", que significa, "vuelve a colocar el texto encontrado", y escoger un estilo de carácter en el cuadro "Cambiar formato"

    Responder

Hola, me pareció muy útil el artículo.
Sigo teniendo una duda para ordenar alfabéticamente una lista. Dicha lista es parecida a lo siguiente:
ZNOV ZDEF ZAUE ZNNO etc., sin comas.
Con GREP puedo separar en párrafos este texto, pero mi duda es si hay alguna forma de que también en GREP pueda ordenarlo alfabéticamente. Sé que puedo hacerlo con Script, pero son muchos documentos en los que debo ordenar el texto, aproximadamente 50 por semana, así que sería muy útil ahorrarme el paso de estar seleccionando cada texto y aplicar el Script. Espero haberme explicado con claridad y gracias de antemano.

Responder
Adolfo Alarcon Campos
19th febrero 2019 2:03 am

Muy buen aporte Javier! Yo vengo motivado por la nota de la pág 193 de tu libro “InDesign CC” (Anaya). Te quería preguntar si no existirá algo así como un diccionario GREP y un libro en para hacer ejecicios con GREP. ¿Cuál recomendarías tú? ¿O has hecho uno tú? Gracias. Saludos.

Responder

Hola Javier, gracias por compartir, son de mucha utilidad tus respuestas y artículos. Tengo la siguiente situación: En un párrafo me aparece la misma palabra al final de línea en tres lineas seguidas dentro de un párrafo. Esto se ve muy anti estético, de qué manera lo podría resolver con GREP y automatizarlo para que detecte y resuelva casos similares en todo el documento. Gracias, espero haberme explicado. Saludos

Responder
    F. Javier Gómez Laínez
    25th abril 2019 3:10 pm

    Yo no utilizaría GREP, sino las Opciones de separación de párrafos del propio InDesign, y las opciones de mantener líneas juntas.

    Responder

Buenos días, tengo un texto extenso, más específicamente la biblia, la cual esta compuesta por varios versículos y capítulos.
Necesito colocar en el encabezado el nombre del versículo actual y el número de los capítulos que se encuentren en esa página, ejemplo: GÉNESIS 4,5,6
La verdad tengo pocos conocimientos con indesing y no he logrado hacerlo, ya que logro colocar por medio de sección el nombre del versículo correspondiente, pero no logro que automáticamente me identifique que capítulos están en la pagina, no se si hay una manera con GREP, que me ayude con este tema. estaria muy agradecido si me pudieras ayudar, muchas Gracias.

Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Fill out this field
Fill out this field
Por favor, introduce una dirección de correo válida.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Menú