Altova XMLSpy 2024 Enterprise Edition 

Iconos y acceso rápido

 

Comando

Icono

Acceso rápido

Buscar

icFind

Ctrl+F

Buscar siguiente

icFindNext

F3

 

Buscar

El comando Buscar abre el cuadro de diálogo «Buscar/Reemplazar» (imagen siguiente), donde puede indicar qué cadena de texto desea buscar y configurar la búsqueda. Escriba el término de búsqueda en el campo Buscar o seleccione una opción del cuadro combinado, que recuerda los 10 términos de búsqueda más recientes. Después configure las opciones de búsqueda.

 

El comando Buscar también sirve para buscar nombres de archivo y carpeta cuando en la ventana Proyecto está seleccionado un proyecto.

 

Buscar siguiente

El comando Buscar siguiente repite la acción del comando Buscar que se usó anteriormente y busca la ocurrencia siguiente del término de búsqueda.

 

El comando Buscar siguiente también se puede usar para encontrar nombres de archivos o carpetas si se selecciona un proyecto en la ventana Proyecto.

 

Cuadro de diálogo Buscar/Reemplazar

El cuadro de diálogo «Buscar/Reemplazar» que explicamos a continuación aparece en la vista Texto y en la vista Cuadrícula. Las opciones de búsqueda se pueden indicar con los botones que hay bajo el campo 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

Puede elegir una de estas opciones:

 

Coincidencia de mayúsculas/minúsculas: Los resultados tienen que coincidir con el término de búsqueda en el uso de mayúsculas y minúsculas (Carta no es lo mismo que carta).

Sólo palabras completas: Sólo se buscan palabras que coincidan con todo el término de búsqueda. Por ejemplo, si activa la opción Sólo palabras completas, para el término de búsqueda par, sólo se encontraría la palabra par. Sin embargo, si no se marca esta casilla, el término de búsqueda par encontraría las palabras par, pareja y compartir, por ejemplo.

Expresión regular: Si está activada esta opción, se busca el texto especificado mediante la expresión regular. Para más información consulte el apartado Expresiones regulares que aparece a continuación.

Filtrar resultados: Selecciona en qué componentes del documento se debe ejecutar la búsqueda.

Buscar delimitador: Los elementos encontrados se indexan por orden de documento y el índice del elemento actualmente seleccionado se indica en el cuadro de diálogo «Buscar/Reemplazar». Por ejemplo, a partir de la información de la imagen anterior, podemos decir que el primero de los cuatro elementos encontrados está actualmente seleccionado. Si la opción «Buscar delimitador» está desactivada y pulsa Buscar siguiente (resaltado en rojo en la parte inferior de la imagen siguiente), el primer resultado seleccionado será el primer resultado del documento, empezando desde el principio. Por el contrario, si la opción Buscar delimitador está activada, entonces el primer resultado seleccionado al pulsar Buscar siguiente será el siguiente resultado a partir de la posición actual del cursor. Entonces, si el elemento actualmente seleccionado es el primero (digamos, 1 de 4) y se coloca el cursor después del elemento 3, entonces la acción Buscar siguiente le llevará al elemento 4 y no al 2 (como habría ocurrido si la opción Buscar delimitador estuviera desactivada).

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. Si no está activada, el término de búsqueda se busca 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.

 

Expresiones regulares

Puede usar expresiones regulares (regex) para buscar cadenas de texto. Para ello lo primero es activar la opción Expresión regular (véase las opciones de búsqueda en la sección anterior). 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 (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 metacaracteres de las expresiones regulares consulte la tabla que aparece más abajo.

Haga clic para expandir/contraer

Metacaracteres de 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.

\

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:

 

\

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

\

Avance de línea (LF). Puede usar CR (\) o LF (\) 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: \\\

 

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.

 

 

© 2018-2024 Altova GmbH