Manual de Calibre | Page 184

Manual de usuario de calibre, Publicación 2.73.0 class="calibre2">Título aquí

" y digamos que le gustaría hacer coincidir la etiqueta de apertura (la parte entre el primer par de ángulos, veremos más sobre las etiquetas más adelante). Se podría pensar que la expresión se correspondería con esa etiqueta, pero en realidad ¡coincide con todo el texto! (El carácter «.» es otro carácter especial, coincide con cualquier cosa excepto saltos de línea, por lo que, básicamente, la expresión .* coincide con cualquier línea que se pueda imaginar). En lugar de eso, trate de usar , lo que hace que el cuantificador «*» no codicioso. Esa expresión sólo coincidiría con la primera etiqueta de apertura, como se pretende. De hecho, hay otra manera de lograr esto. La expresión ]*> coincidirá con la misma etiqueta de apertura, ya verá por qué después de la siguiente sección. Tenga en cuenta que frecuentemente hay más de una manera de escribir una expresión regular. Bien, estos caracteres especiales están muy bien, pero ¿qué ocurre si quiero hacer coincidir un punto o un signo de interrogación? Por supuesto que puede hacerlo: simplemente escriba una barra invertida delante de cualquier carácter especial y se interpretará como un carácter literal, sin ningún significado especial. Esta pareja de barra invertida y un carácter se llama secuencia de escape, y el acto de poner una barra invertida delante de un carácter especial se llama escapar ese carácter. Una secuencia de escape se interpreta como un solo elemento. Hay, por supuesto, secuencias de escape que hacen más que sólo escapar caracteres especiales, por ejemplo "\t" representa una tabulación. Vamos a ver algunas de las secuencias de escape más adelante. Ah, por cierto, en relación con esos caracteres especiales: considere que cualquier carácter que señalemos en esta introducción como poseedor de alguna función es especial y por lo tanto necesita ser escapado si desea que sea un carácter literal. ¿Y cuáles son los conjuntos más útiles? Sabía que lo preguntaría. Algunos conjuntos útiles son [0-9], que coincide con un solo dígintoo, [a-z], que coincide con una sola letra minúscula, [A-Z], que coincide con una sola letra mayúscula, [a-zA-Z], que coincide con una sola letra, y [a-zA-Z0-9], que coincide con una sola letra o número. También puede utilizar una secuencia de escape como abreviatura: \d is equivalent to [0-9] \w is equivalent to [a-zA-Z0-9_] \s is equivalent to any whitespace Nota: “Espacios en blanco” es un término para cualquier cosa que no se imprime. Estos caracteres incluyen el espacio, tabulador, avance de línea, salto de página y retorno de carro. Como último apunte sobre los conjuntos, también puede definir un conjunto como cualquier carácter excepto los especificados. Esto se hace incluyendo el carácter "^" como el primer carácter en el conjunto. Así, [^a] coincidirá con cualquier carácter excepto «a». Esto se llama complementar el conjunto. Las secuencias de escape anteriores que funcionan como abreviaturas también pueden complementarse. "\D" significa cualquier carácter que no sea un número, siendo por lo tanto equivalente a [^0-9]. Las otras abreviaturas se pueden complementar, como puede imaginar, utilizando la respectiva letra mayúscula en lugar de la minúscula. Volviendo al ejemplo ]*> de la sección anterior, ahora se puede ver que el conjunto especificado trata de coincidir con cualquier carácter excepto el ángulo de cierre. Pero si tengo varios textos diferentes para hacer coincidir, ¿las cosas se complican? No tema, todo sigue siendo bueno y fácil. Considere este ejemplo: El libro que quiere convirtir tiene un «Título» escrito en cada página impar y «Autor» en cada página par. Queda muy bien en la versión impresa, ¿no? Pero en libros electrónicos es molesto. Puede agrupar expresiones enteras en paréntesis normales, y el carácter "|" hará que coincida la expresión a la derecha o la de la izquierda. Combínelas y ya está. ¿Demasiado rápido? Bueno, en primer 180 Capítulo 1. Secciones