IDE regular expressions/es

From Free Pascal wiki
Revision as of 20:09, 13 January 2010 by Iskraelectrica (talk | contribs)
Jump to navigationJump to search

Template:MenuTranslate

Expresiones regulares normales

   Metacaracteres:

 \   Se utiliza para marcar el siguiente carácter de la expresión de búsqueda de forma que este adquiera un significado especial o deje de tenerlo. O sea, la barra inversa no se utiliza nunca por sí sola, sino en combinación con otros caracteres. Al utilizarlo por ejemplo en combinación con el punto "\." este deja de tener su significado normal y se comporta como un carácter literal.
 ^   Representa el incio de una línea
 .   Representa a cualquier carácter (excpeto línea nueva). Ejemplo: 'a.c' representaría 'abc', 'aBC', 'axc', 'a3c', 'a$c', etc.
 $   Representa el fin de línea (o antes de nueva línea al final)
 |   Sirve para indicar una de varias opciones
 ()  Agrupar caracteres. Por ejemplo: (abc)+ coincidiría con 'abc' o 'abcabc' o 'abcabcabc' etc.
 []  Clases de caracteres. Por ejemplo [abc], [a-z], [a-zA-Z0-9_]
 [^] Inversa de clases de caracteres. Por ejemplo [^a-z]

   Cuantificadores:

 *      Representa 0 o más veces
 +      Representa 1 o más veces
 ?      Representa 1 o 0 veces
 {n}    Representa exactamente n veces
 {n,}   Representa al menos n veces
 {n,m}  Representa al menos n veces, pero no más de m veces.

   Las llaves en cualquier otro contexto es son tratadas como un carácter regular. El ``* es equivalente a {0,}, el ``+ a {1,} y la ``? a {0,1}.

   Por omisión, un cuantificador es codicioso (greedy), lo que significa, que coincidirá tantas veces como sea posible. Para coincidir con el número mínimo de veces posible, adjuntar una ?.

 *?      Representa 0 o más veces
 +?      Representa 1 o más veces
 ??      Representa 1 o 0 veces
 {n}?    Representa exactamente n veces
 {n,}?   Representa al menos n veces
 {n,m}?  Representa al menos n veces, pero no más de m veces.

Sintáxis simple

   Varios diálogos del IDE tienen una caja de verificación para escoger entre sintáxis simple y expresiones regulares. La sintáxis simple suele ser más corta para los filtros corrientes de nombre de archivo.

   Técnicamente se hace así:

 Los siguientes caracteres son reemplazados por
  . -> \.
  * -> .*
  ? -> .
  , -> |
  ; -> |
  
  Por último encerrar con ^( )$

Ejemplos de sintaxis simple

  • *.pas - representa todos los archivos que terminan en .pas, cómo Unidad1.pas o Algún.texto.pas. Por omisión la coincidencia distingue mayúsculas y minúsculas. Así que no encajará unidad1.PAS.
  • *.pas;*.pp;*p - representa todos los archivos unidad1.pas, 678.pp o %.p
  • unidad*.pas - representa todos los archivos que comienzan con unidad y terminan con .pas como unidad1.pas y unidad.pas.
  • unidad?.pas - representa todos los archivos que comienzan con unidad', terminan con .pas y tienen un único y arbitrario caracter por medio, tal que unidad1.pas y unidad2.pas.

Simbolos marcados

   La barra invertida '\' se puede utilizar para tratar los caracteres especiales, tal que '.', como caracteres normales o para obtener algunos rangos especiales.

  \. Representa un punto '.'
  \d Representa un caráceter numérico '0'..'9'
  \D Representa un caráceter no numérico
  \s Representa un carácter blanco ' ',#9,#10,#12,#13
  \S Representa un carácter no blanco
  \w Representa cualquier carácter alfanumérico 'a'..'z','A'..'Z','0'..'9','_'
  \W Representa cualquier carácter no alfanumérico.
  \b Marca el inicio y el final de una palabra
  \B Marca la posición entre dos caracteres alfanuméricos o dos no-alfanuméricos
  \A Representa el inicio de la cadena. No un carácter sino una posición
  \Z Representa el final de la cadena. No un carácter sino una posición.

Buscar y reemplazar mediante expresiones regulares

   El cuadro de diálogo de búsqueda disponen de las expresiones regulares para buscar y reemplazar. Cada patrón que se encuentra agrupado entre paréntesis puede ser utilizado cómo las variables $1, ..., $9.

   Por ejemplo:

  • Expressión a buscar: a(.*)c
  • Expression de reemplazo: A$1C
  • Texto: 'abc aLazc'

   La variable $1 se sustituirán por el texto encontrado, que coincide con el primer tramo.

  • Resultado: 'AbC ALazC'

   Podemos utilizar además los siguientes caracteres especiales en el terminao a reemplazar

  • \n: Inserta un salto de línea
  • \l \u: Pone a minúsculas o mayúsculas al siguiente caráter. Si usamos esto delante de $n. \u$1 Se insertará la ocurrencia desde el primer par de corchetes, pero con su primer caácterr en mayúscula.
  • \L \U: Pone a minúsculas o mayúsculas todo el texto del siguiente $n. EL $n debe estar inmediatamente a continuación.