Buscar y reemplazar

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Guía y referencia del usuario > Vistas de edición > Vista Texto >

Buscar y reemplazar

Temas de este apartado:

 

Buscar texto en un documento
Opciones de búsqueda
Reemplazar texto
Uso de expresiones regulares
Ejemplos de expresiones regulares

 

Buscar texto en un documento

Pulse Ctrl+F (o seleccione el comando de menú Edición | Buscar) para abrir el cuadro de diálogo "Buscar" (imagen siguiente, esquina superior derecha). El término de búsqueda introducido en este cuadro de diálogo puede buscarse en todo el documento o dentro de una selección de texto.

 

Introduzca la cadena de texto que desea buscar o utilice el cuadro combinado para seleccionar una cadena de las últimas 10 búsquedas realizadas.
Una vez introducida o seleccionada la cadena de búsqueda, todos resultados se resaltan y la posición de los resultados se señala por medio de marcadores de color beige en la barra de desplazamiento (imagen siguiente).
El resultado seleccionado por el usuario se marca con un color distinto al de los demás resultados y su posición en la barra de desplazamiento se señala con un marcador de color azul oscuro.
El número total de resultados aparece justo debajo del término de búsqueda, junto con la posición de índice del resultado seleccionado por el usuario (imagen siguiente). Por ejemplo, 2 de 4 indica que el usuario tiene seleccionado el segundo de los cuatro resultados.
Puede recorrer los resultados en ambos sentidos seleccionado los botones Anterior (Mayús+F3) y Siguiente (F3) situados en la esquina inferior derecha del cuadro de diálogo.

TextViewFind

Para cambiar del modo Buscar al modo Reemplazar y viceversa haga clic en el botón de flecha situado en la esquina superior izquierda del cuadro de diálogo.
Para cerrar el cuadro de diálogo haga clic en el botón Cerrar situado en la esquina superior derecha.

 

Debe tener en cuenta estos aspectos del cuadro de diálogo:

 

El cuadro de diálogo "Buscar" no es modal. Esto significa que puede dejarlo abierto mientras utiliza la vista Texto.
Si tiene texto seleccionado antes de abrir el cuadro de diálogo, el texto seleccionado se inserta automáticamente en el campo del término de búsqueda.
Para realizar búsquedas dentro de una selección: (i) marque la selección, (ii) active la opción Buscar en la selección para bloquear la selección e (iii) introduzca el término de búsqueda. Para buscar dentro de otra selección, desbloquee la selección actual desactivando la opción Buscar en la selección, marque una nueva selección y active otra vez la opción Buscar en la selección.
Después de cerrar el cuadro de diálogo "Buscar" puede repetir la búsqueda actual con solo pulsar F3 (búsqueda hacia adelante) o Mayús+F3 (búsqueda hacia atrás). El cuadro de diálogo aparece al pulsar estas teclas.

 

Opciones de búsqueda

Las opciones para determinar los criterios de búsqueda pueden configurarse con los botones situados debajo del campo del término de búsqueda (imagen siguiente). Si una opción está activada, su botón aparece en color azul (p. ej. en la imagen siguiente está activado el primer botón).

TextViewFindDialog

Estas son las opciones de búsqueda que se pueden seleccionar:

 

Coinc. mayús/min: la búsqueda tiene en cuenta las mayúsculas y minúsculas a la hora de realizar la búsqueda (Address no es lo mismo que address).
Sólo palabras completas: solo se consideran coincidencias las palabras completas. Por ejemplo, si activa esta opción y busca el término fit, la aplicación devuelve como resultado la palabra fit, pero no fitness.
Expresión regular: si activa esta opción, el término de búsqueda se lee como expresión regular (véase más abajo).
Filtrar resultados: seleccione en qué componentes del documento se debe ejecutar la búsqueda.
Buscar delimitador: cuando se introduce un término de búsqueda, los resultados del documento se resaltan y uno de ellos se marcará como selección actual. Con la opción Buscar delimitador puede definir si esta primera selección se hace en relación a la posición actual del cursor o no. Es decir, si la opción Buscar delimitador está activada, entonces el primer resultado seleccionado será el siguiente resultado a partir de la posición actual del cursor. Por el contrario, si la opción Buscar delimitador está desactivada, el primer resultado seleccionado será el primer resultado del documento, empezando desde el principio.
Buscar en selección: si activa esta opción, la selección actual se bloquea y la búsqueda se ejecuta en la selección solamente. De lo contrario, la búsqueda se ejecuta en todo el documento. Antes de realizar una selección nueva deberá desbloquear la selección actual desactivando el botón de la opción Buscar en selección.

 

Reemplazar texto

Para reemplazar una cadena de texto por otra:

 

1.Pulse Ctrl+H (o seleccione el comando de menú Edición | Reemplazar) para abrir el cuadro de diálogo "Reemplazar" (imagen siguiente). También puede cambiar al modo Reemplazo del cuadro de diálogo "Buscar" haciendo clic en el botón de flecha situado en la esquina superior izquierda del cuadro de diálogo.

TextViewReplace

2.Introduzca la cadena de texto que desea reemplazar en el campo de búsqueda y en el campo de reemplazo introduzca la cadena de texto nueva. El número de coincidencias que se reemplazarán y el índice de la coincidencia seleccionada aparecen justo debajo del campo de reemplazo. Además, la posición de las coincidencias aparecen marcadas en beige en la barra de desplazamiento (véase Buscar texto en un documento). En la imagen anterior, por ejemplo, la búsqueda de la cadena type devolvió 5 coincidencias y la coincidencia seleccionada es la tercera.
3.Los botones Reemplazar siguiente y Reemplazar todos están situados a la derecha del campo de la cadena de reemplazo. Si hace clic en el botón Reemplazar siguiente pueden ocurrir dos cosas: (i) si el cursor está situado junto a una coincidencia o dentro de una, se reemplaza esa coincidencia o (ii) si el cursor está situado fuera de una coincidencia, la función de reemplazo salta a la coincidencia siguiente. Haga clic en Reemplazar siguiente para reemplazar esta coincidencia. Haga clic en el botón Reemplazar todos para reemplazar todas las coincidencias.

 

Debe tener en cuenta estos aspectos de la función de reemplazo:

 

Si desea reemplazar texto situado dentro de una selección (y no en todo el documento): (i) marque la selección, (ii) active la opción Buscar en la selección para bloquear la selección, (iii) introduzca el término de búsqueda y reemplazo y (iv) haga clic en Reemplazar siguiente o Reemplazar todos según corresponda. Para reemplazar texto dentro de otra selección, desbloquee la selección actual desactivando la opción Buscar en la selección, marque una nueva selección y active otra vez la opción Buscar en la selección.
Para deshacer una acción de reemplazo pulse Ctrl+Z o seleccione el comando Edición | Deshacer.

 

Uso de expresiones regulares

Puede usar expresiones regulares para buscar cadenas de texto en el documento. Para ello lo primero es activar la opción Expresión regular (véase más arriba). Al activar esta opción estamos especificando que el texto del campo del término de búsqueda debe evaluarse como expresión regular. El segundo paso consiste en introducir la expresión regular en el campo del término de búsqueda. Si necesita ayuda para construir su expresión regular, haga clic en el botón Generador de expresiones regulares (situado a la derecha del campo del término de búsqueda, tal y como muestra la imagen siguiente). Seleccione un elemento de la lista desplegable para introducir los caracteres correspondientes en el campo de búsqueda. Por ejemplo, en la imagen siguiente puede ver una expresión regular sencilla que se utiliza para buscar direcciones de correo electrónico. Para más información sobre los caracteres de las expresiones regulares consulte la tabla que aparece más abajo.

Clic para ampliar

 

Metacaracteres de las expresiones regulares

A continuación puede consultar una lista de los metacaracteres de las expresiones regulares.

 

.

Cualquier carácter. Es un comodín para un solo carácter.

(

El inicio de una región en la que se realizará la búsqueda.

)

El final de la región en la que se realizará la búsqueda.

(abc)

Los metacaracteres ( y ) marcan el inicio y el final de una expresión etiquetada. Las expresiones etiquetadas son ideales si necesita etiquetar (es decir, recordar) una región encontrada en la búsqueda para poder hacer referencia a ella más tarde (referencia inversa). Puede etiquetar un máximo de nueve expresiones (y hacerles referencia más tarde, desde el campo Buscar o Reemplazar).

 

Por ejemplo, (the) \1 encuentra la cadena the the. Esta expresión significa: encontrar la cadena "the" (y recordarla como región etiquetada), seguido de un carácter de espacio y de una referencia inversa a la región etiquetada encontrada previamente.

\n

En una expresión de búsqueda o reemplazo, indica el texto coincidente con la n-ésima expresión etiquetada, siendo n un número del 1 al 9. Por ejemplo, si el término de búsqueda es Fred([1-9])XXX y el término de reemplazo es Sam\1YYY, el texto Fred2XXX se reemplazará con Sam2YYY.

\<

Inicio de palabra.

\>

Final de palabra.

\x

Encuentra el carácter x que sigue a la barra inversa, cuando el carácter x es un carácter que se utiliza en la sintaxis de expresiones regulares. Por ejemplo, \[ encuentra el carácter [ y no el inicio de un conjunto de caracteres.

[...]

Conjunto de caracteres. Por ejemplo, [abc] encuentra los caracteres a, b o c. También puede usar intervalos como [a-z] para buscar cualquier carácter en minúsculas.

[^...]

Un carácter cualquiera no perteneciente al conjunto. Por ejemplo, [^A-Za-z] encuentra cualquier carácter excepto caracteres alfabéticos en mayúsculas o minúsculas.

^

Inicio de línea (a no ser que se use dentro de un conjunto de caracteres, ver fila anterior).

$

Final de línea. Por ejemplo, A+$ encuentra una A o más de una A que estén al final de una línea.

*

0 veces o más. Por ejemplo, Sa*m encuentra Sm, Sam, Saam, Saaam, etc.

+

1 o más veces. Por ejemplo Sa+m encuentra Sam, Saam, Saaam, etc

 

 

Representación de caracteres especiales

Estas expresiones regulares son especiales:

 

\r

Retorno de carro (CR). Puede usar CR (\r) o LF (\n) para buscar o crear una línea nueva.

\n

Avance de línea (LF). Puede usar CR (\r) o LF (\n) para buscar o crear una línea nueva.

\t

Tabulación

\\

Utilice esto para aplicar escape a los caracteres que aparecen en las expresiones regulares. Por ejemplo: \\\n

 

Ejemplos de expresiones regulares

En este apartado explicamos cómo usar expresiones regulares para encontrar y reemplazar texto. En muchos casos la búsqueda y reemplazo de texto es una tarea sencilla que no necesita el uso de expresiones regulares. Sin embargo, a veces una operación de búsqueda y reemplazo no es suficiente y será necesario manipular el texto. Por ejemplo, imagine que tiene un archivo XML que incluye varios miles de líneas y necesita cambiar el nombre de determinados elementos de una sola vez, pero sin cambiar el contenido de los elementos. O, por ejemplo, imagine que necesita cambiar el orden de varios atributos de un elemento. En estos dos casos el uso de expresiones regulares le permitiría evitar mucho trabajo manual.

 

Ejemplo nº1: cambiar el nombre de elementos

El fragmento de código XML que aparece a continuación incluye una lista de libros. Imaginemos que nuestro objetivo es reemplazar el elemento <Category> de cada libro con el elemento <Genre>. Podemos hacerlo usando expresiones regulares.

 

<?xml version="1.0" encoding="UTF-8"?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="books.xsd">
  <book id="1">
    <author>Mark Twain</author>
    <title>The Adventures of Tom Sawyer</title>
    <category>Fiction</category>
    <year>1876</year>
  </book>
  <book id="2">
    <author>Franz Kafka</author>
    <title>The Metamorphosis</title>
    <category>Fiction</category>
    <year>1912</year>
  </book>
  <book id="3">
    <author>Herman Melville</author>
    <title>Moby Dick</title>
    <category>Fiction</category>
    <year>1851</year>
  </book>
</books>

 

Estos son los pasos que debe seguir:

 

1.Pulse Ctrl+H para abrir el cuadro de diálogo "Buscar y reemplazar".
2.Haga clic en el botón Usar expresiones regulares _ic_find_regex.
3.En el campo Buscar introduzca este texto: <category>(.+)</category>. Esta expresión regular encuentra todos los elementos category, que aparecerán resaltados.

inc-RegexExample01

Para encontrar el contenido de cada elemento (que desconocemos), usamos la expresión etiquetada (.+) . La expresión (.+) indica que se deben "buscar una instancia o varias de cualquier carácter (.+) y recordar este resultado". Como podrá ver en el paso siguiente, más adelante necesitaremos la referencia a la expresión etiquetada.

 

4.En el campo Reemplazar introduzca este texto: <genre>\1</genre> . Esta expresión regular define el texto de reemplazo. Observe que usa \1 para hacer referencia inversa a la expresión etiquetada del campo Buscar. En otras palabras, en este contexto \1 significa "el contenido del elemento <category> actual que coincida con la búsqueda".
5.Haga clic en Reemplazar todos _ic_regex_replaceall y observe el resultado. Todos los elementos category se reemplazaron con genre, tal y como era nuestra intención.

 

Ejemplo nº2: cambiar el orden de los atributos

El fragmento de código XML que aparece a continuación incluye una lista de producto. Cada producto tiene dos atributos llamados id y size. Imaginemos que nuestro objetivo es cambiar el orden de los atributos id y size de cada elemento product (es decir, en todos los elementos product el atributo size debe aparecer antes de id). Podemos hacerlo usando expresiones regulares.

 

<?xml version="1.0" encoding="UTF-8"?>
<products xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="products.xsd">
  <product id="1" size="10"/>
  <product id="2" size="20"/>
  <product id="3" size="30"/>
  <product id="4" size="40"/>
  <product id="5" size="50"/>
  <product id="6" size="60"/>
</products>

 

Estos son los pasos que debe seguir:

 

1.Pulse Ctrl+H para abrir el cuadro de diálogo "Buscar y reemplazar".
2.Haga clic en el botón Usar expresiones regulares _ic_find_regex.
3.En el campo Buscar introduzca este texto: <product id="(.+)" size="(.+)"/> . Esta expresión regular busca un elemento product en el documento XML. Observe que, para encontrar el valor de cada atributo (que desconocemos) se usa la expresión etiquetada (.+) dos veces. La expresión etiquetada (.+) encuentra el valor de cada atributo (que se supone será una instancia o varias de cualquier carácter, es decir .+).
4.En el campo Reemplazar introduzca este texto: <product size="\2" id="\1"/> . Esta expresión regular contiene el texto de reemplazo para cada uno de los elementos product que se encontraron. Observe que usa las referencias \1 y \2, que corresponden a las expresiones etiquetadas del campo Buscar. En otras palabras, \1 significa "el valor del atributo id" y \2 significa "el valor del atributo size".

inc-RegexExample02

5.Haga clic en Reemplazar todos _ic_regex_replaceall y observe el resultado. Todos los elementos product del documento XML se reemplazaron de modo que el atributo size aparezca delante del atributo id.

 


© 2019 Altova GmbH