BSQUEDAS AVANZADAS CON EXPRESIONES REGULARES EN SIGIL 0.5 o SUPERIOR (v 10.0) (por Carlos. ePubLibre) Reglas generales: La tabla de expresiones regulares que figura debajo recoge las explicaciones sobre qu es lo que se pretende encontrar con cada una de ellas aportando un pequeo ejemplo, en algunos casos, sobre el tipo de errores a detectar. Est dividida en diferentes secciones que a su vez agrupan bsquedas relacionadas entre ellas. El orden en el que aparecen es importante ya que el funcionamiento de ellas puede variar si no se han realizado correcciones con expresiones que las preceden. Las bsquedas deben efectuarse con las opciones globales de Sigil Multilnea (DotAll) y coincidencia mnima (Minimal Match) desmarcadas. Cuando la casilla del reemplazo se encuentra vaca implica que lo encontrado se eliminar. LAS EXPRESIONES REGULARES NO SON UN PROGRAMA INFORMTICO. No toman decisiones en funcin de lo que encuentran, las decisiones las debe tomar el editor. Sin ser su uso complicado requieren paciencia sobre todo al principio. Funcionamiento: Si desconoces la forma de realizar bsquedas con expresiones regulares en Sigil esta gua puede ayudarte. La indicacin [R] en la numeracin de una expresin indica que se trata de una expresin recursiva: es necesario seguir comprobndola hasta no obtener coincidencias o volver a una coincidencia ya comprobada. A. GRUPO DE EXPRESIONES CORRECTORAS En este grupo A se recogen las expresiones regulares destinadas a la correccin de errores frecuentes. Su finalidad es por tanto CORREGIR fallos N BSQUEDA REEMPLAZO USO 0 LIMPIEZA DE CDIGO Este grupo de expresiones tiene como objetivo eliminar aquellas partes del contenido del epub que son innecesarias: etiquetas del lenguaje html, cdigo generado por otros programas, etiquetas en desuso. etc. 0.01 (((?<=/></p)|(?<![pv\d]))>\s*<h\d.*?|ttitulo")\K\sid="[hs]?(.+)?_\d+"|<!--.+--> Elimina los comentarios de la plantilla y las identidades idde los encabezados. Versiones anteriores de Sigil crearn de nuevo dichas identidades al regenerar la TOC, pero pueden eliminarse por este mismo procedimiento. NOTA: en la medida de lo posible intenta determinar la existencia de ms de un encabezado en una misma seccin con el fin de no eliminar las identidades de los encabezados anidados. 0.02 —|- Sustituye la etiqueta por el smbolo 0.03 – Sustituye la etiqueta por el smbolo 0.04 (?<![agp]>|\pN|\p{Lu}{2})( (?!</p>|\pL{1,2}\.|[\pN,-]+|\||\p{Lu}\p{Ll}{1,3}&)| (?=</p>))|(?<=<p>|\s) (?!\|| </p>)|\PL\p{Ll}+\K (?=[\pN,-]+) Sustituye la etiqueta por un espacio en blanco, manteniendo dicha etiqueta solamente si de da <p> </p> NOTA: el reemplazo es un espacio en blanco. 0.05 “ Sustituye la etiqueta “ por las comillas tipogrficas de apertura. NOTA: el reemplazo se obtiene en Windows mediante Alt+0147 0.06 ” Sustituye la etiqueta ” por las comillas tipogrficas de cierre. NOTA: el reemplazo se obtiene en Windows mediante Alt+0148 0.07 \xAD|­ Elimina la etiqueta ­ o su correspondiente smbolo. Este smbolo introduce un carcter invisible en Sigil y que aparentemente separa partes de la misma palabra. Al no ser visible no es posible realizar una bsqueda simple por lo que es necesaria su localizacin hexadecimal. 0.08 (?s)<style.+</style>|<p([^>]+)?style[^>]+></p>|<p([^>]+)?\K\sstyle="[^"]+"(?=>)? Elimina la totalidad de cdigo entre etiquetas <style></style> Cualquier estilo que quiera aplicarse al texto en cada seccin deber realizarse mediante clases en el archivo CSS 0.09 <span( style[^>]+| class="calibre\d+")?>([^=\n]+?)</span> \2 Elimina las etiquetas <span>no afectadas de alguna clase. 0.10 class="sgc-\pN{1,3}" Elimina las referencias a las clases creadas por Sigil. Si la clase es mltiple por ejemplo class=salto25 sgc-2no la localizar. Este tipo de casos se recogen en otra expresin. 0.11 <i(\s[^>]+)?>(.+?)</i> <em\1>\2</em> Sustituye la etiqueta <i>por <em> 0.12 <b(\s[^>]+)?>(.+?)</b> <strong\1>\2</strong> Sustituye la etiqueta <b>por <strong> 0.13 \pL\K\s?(['`]+|’)(?!\s) Sustituye el apstrofo o acentos aislados por el tipogrfico. NOTA: el reemplazo se obtiene en Windows mediante Alt+0146 0.14 [.]{3,7}|…\.?|\. Detectar tres o cuatro puntos seguidos o la Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] etiqueta equivalente, que deberan ser puntos suspensivos y los reemplazar por (que es un nico carcter) 0.15 (?i)(?<=\PL)([dntv])(?=\PL) \1i Eliminar los acentos en d, n, t y v. 0.16 (?i)(?<=\PL)([dst])e(?=[\.;\?!\)]) \1 Aadir los acentos a de, se y te en posicin previa a puntuaciones. 0.17 (?i)[^\pN\pL]\K([i1],?([ae])|(|e|(?-i)a)[i1])(?=[^\pL"]) \3l\2 Trminos buscados que pueden actuar como artculos:
1a 1e 1 !a !e ! a1 ai a a a! e1 ei e e e! 1 i ! ia ie a e NOTA: hay que prestar atencin en libros de ciencias a esta expresin. La expresin cambiar a minsculas todas las L detectadas (tanto las de inicio de prrafo como las que siguen a smbolos de puntuacin que impliquen que se contine con mayscula. Sin embargo este hecho se corrige con el uso de otras expresiones posteriores de la tabla. Existen tres excepciones Ai A1 y A que an pudiendo ser Al no se modificarn ya que Ai puede ser nombre propio. 0.18 (?i)(?<=\PL)((aqu)(llo)|(st?o))(?!s) \2e\3\4 Eliminar los acentos de esto, eso y aquello. 0.19 (?<![\pN,-])0(s?)(?=\s\PN{5,}) o\1 Corrige el uso del cero en funciones de O NOTA: hay que prestar atencin en libros de ciencias a esta expresin aunque tiene en cuenta que el 0 no vaya precedido de nmeros o coma decimal. 0.20 (?i)(?<=\PL)(aj|ojal)a(?=\PL) \1 Aadir los acentos a aja y ojala. 0.21 (?i)\PL\K(c)orno(?=\PL) \1omo Corrige el trmino corno. 0.22 (?<!gton|,)\PL\K(?|([aAdD])\.?\s?[cC](?=[^.])|([aAdD])\s?[cC]\.|([aAdD])\.\s?c\.?|([AD])\.\s?C\.?|([ad])\.C\.)(?=\PL) \L\1\E. C. Corrige las distintas formas de abreviaturas de antes de Cristo y despus de Cristo NOTA: RAE. Abreviaturas 0.23 \pL\K6(?=n[\pP\s]) Corrige errores de OCR en palabras agudas terminadas en 6n en vez de n 0.24 (?<!<body>\n\s{2})<p[^=>]*>(<[^>]+>)*( )*(</[^>]+>)*</p>\s* Esta expresin localiza distintos tipos de prrafos sin contenido, anulndolos. 1 COMILLAS Este grupo de expresiones tiene como objetivo adecuar el uso de los distintos tipo de comillas. Antes de nada sealar que es imposible garantizar la perfecta sustitucin de las comillas. El nmero de posibilidades en las que se encuentran, el propio uso diferente que hacen los autores para las mismas situaciones y el aadido de formar parte del cdigo html, determina la ausencia de patrones inequvocos de bsqueda. An as, partimos de la base de que es preferible corregir algn tipo de comillas mal colocadas, una vez pasadas las RegEx, que no tener que hacerlo manualmente con la totalidad del texto. Son expresiones complejas motivado por la dificultad de distincin de los smbolos de apertura y cierre cuando en el texto slo se usan comillas inglesas " Hay dos formas de enfrentarse a su localizacin y sustitucin: Mtodo simple: exacto al empleado en versiones iniciales de las RegEx. Mtodo avanzado: basado en 9 pasos. El proceso consiste en sustituir todo tipo de comillas del texto por las angulares , independientemente de si deben serlo o no. Las expresiones 1.021 y 1.022 realizan tareas auxiliares previas consistentes en detectar pares de comillas cuando alguna de ellas est separada de la frase o justamente lo contrario: aqullas que tienen caracteres adosados por ambos lados, con el fin de corregir la situacin previamente a su transformacin en angulares. La transformacin en s se realiza con las expresiones 1.023 y 1.024. Las expresiones 1.025 y 1.026 se encargan de localizar y sustituir las comillas anidadas por las tipogrficas
La expresin 1.027 identifica las continuaciones de dilogos o pensamientos para iniciarlas con La expresin 1.028 es un complemento de la 1.025 y 1.026, que se da en menos ocasiones: pensamientos o relatos en varios prrafos La expresin 1.029 intentar localizar algunos casos dudosos o comillas que hayan quedado aisladas. NOTA: RAE (Comillas 3) 1.01 Mtodo simple Este procedimiento se ajusta al criterio seguido en versiones iniciales de las expresiones regulares. Es vlido para textos sencillos con un uso escaso de entrecomillados. El mtodo empleado se basa en localizar primero los entrecomillados simples y a continuacin los anidados si stos existen. Tiene un inconveniente: las comillas internas en un conjunto anidado se mantienen como estaban originalmente y hay que realizar su sustitucin de forma manual por las tipogrficas 1.011 (?<!=)["]([^-\s>]([^"\n]+?)?)(?<!\s)["](?=[^>]) \1 Para transformar dobles comillas "" o por comillas angulares . Se diferencia de la expresin 1.012 en que no contempla la posibilidad de entrecomillados anidados sino que los selecciona de forma independiente. Ejemplo: este es un caso sencillo Ejemplo: este es un caso sencillo Quedando: este es un caso sencillo La existencia de textos anidados entre comillas no se puede corregir mediante esta expresin ya que nos quedara algo parecido a: este es un caso anidado de dos grupos de comillas 1.012 (?<!=)["]([^-\s>]([^\n=#]+)?)["](?=[^>]) \1 Para transformar dobles comillas "" o por comillas angulares . La expresin busca en cada prrafo y, si existen ms de dos comillas en l, transforma en angulares las ms externas, dejando las interiores igual, ya que lo ms probable es que se traten de comillas anidadas. De esta manera se siguen las indicaciones de la RAE. Pero hay ocasiones en que en un prrafo puede haber varios grupos de comillas que no estn anidadas. En esta situacin hay que emplear la expresin 1.011. Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] Ejemplo: este es un caso anidadode dos gruposde comillas Quedando: este es un caso anidadode dos gruposde comillas 1.02 Mtodo avanzado Este procedimiento est aconsejado para textos con un elevado nmero de citas. Es un proceso mucho ms complejo y con el que conviene tener especial cuidado. Parte de dos premisas que no siempre se cumplen y que son: que no faltan comillas de apertura o cierre que debieran existir y que los dilogos o pensamientos que continan en diferentes prrafos tienen en algn momento unas comillas de cierre. Consta de 9 pasos diferenciados que en su mayora trabajan sobre el prrafo completo. Esto implica que para realizar adecuadamente su trabajo deben pasar ms de una vez por l al no existir un comando que realice tareas de recursividad. Es decir si se usa reemplazar todo es posible que sea necesario realizar esa accin varias veces para cada expresin. El uso independiente de las expresiones 1.023 y 1.024 puede devolver resultados engaosos, pues como se ha sealado en la introduccin del grupo 1, el procedimiento a seguir siempre convierte todas las comillas en angulares, tengan o no que serlo, de forma que posteriores expresiones se encarguen de modificarlas adecuadamente. Si una vez realizado todo el proceso vuelven a emplearse las mencionadas expresiones, volveran a detectar casos que habran sido corregidos por el resto de expresiones. A los efectos de este grupo de expresiones, el trmino recursiva implica la repeticin de la misma expresin de bsqueda una vez completada, es decir: no aparecern coincidencias (dentro de un mismo prrafo) si no se ha realizado la correccin de la primera coincidencia encontrada en ese prrafo. Lo ms aconsejable es una vez realizado el reemplazo volver a contar el nmero de coincidencias que se obtienen con la expresin que se acaba de usar. [R] 1.021 (?|[\s(>]['"]\S[^'"\n]+\K\s(['"][,.;:?!\s)<])|([\s(>]['"])\s(?=[^'"\n]+['"][,.;:?!\s)<])) \1 Localiza comillas aisladas y que por tanto tienen que ajustarse a su posicin correcta previamente a su transformacin en angulares. Ejemplo en esta palabra hay" un error Quedando: en esta palabra hay" un error Ejemplo en esta palabra hay un error Quedando: en esta palabrahay un error Dado el funcionamiento de la expresin se requiere la existencia del par de comillas y que una de ellas se encuentre aislada de su correspondiente palabra. Comillas totalmente aisladas sin pareja se intentan detectar con la expresin 1.028 NOTA: Dado que es posible que ambas comillas se encuentren aisladas del texto en ocasiones habr que pasar ms de una vez por las frases, es decir esta expresin puede ser recursiva. [R] 1.022 (?|((?<!>)[.,:;?!](?!)|(?<!["g\d]|<p)>[.,:;]?|\s[^\s<=/("]+)(?<!\s|<em>)\K(["])(?![.,:;)?!>\s]|?<(su|a|/p)|["] [.,:;]|[aeouy]["])(?=[^\n]+?(?<![\s=\d])["](?!>))|\pL\K(["])([\pL(]|\pL)) \1 \2 Esta expresin localiza comillas con caracteres a ambos lados de ella, sean de apertura o de cierre, separndolas adecuadamente. Ejemplo Aquhay un error Quedando: Aqu no hay un error Ejemplo Aqu hayun error Quedando: Aqu no hay un error NOTA: En el caso de comillas inglesas determinadas situaciones no pueden ser discriminadas con exactitud ya que la comilla analizada pudiera ser tanto de apertura como de cierre. En estos casos el reemplazo puede ser errneo y por tanto las transformaciones posteriores realizadas por las expresiones de este grupo 1.02. Sin embargo los errores que se hubieran podido cometer producirn detecciones de las expresiones correspondientes a comillas del grupo 6. Al igual que para la expresin anterior, esta expresin es recursiva. [R] 1.023 (<p([^>]+?)?>[]?|[\s(])(<[^>/]+?>)?\K["](?![-\s.,?!):;]|http) Esta expresin busca en exclusiva comillas de apertura no angulares para sustituirlas por las angulares. Ejemplo: este es un caso anidado de dos grupos de comillas Quedando: este es un caso anidado de dos grupos de comillas NOTA: Al igual que para la expresin anterior, esta expresin es recursiva. [R] 1.024 (?<!jp|pn|cs|shee|htm|\pN\.|-)[\pN\pL.?!\->)]\K["](?="\PL|</|[^>\n\pL"] (?!>|/>|class|id=|height|href|src|style|title|width)) Esta expresin busca en exclusiva comillas de cierre no angulares para sustituirlas por las angulares. Ejemplo: este es un caso anidadode dos gruposde comillas Quedando: este es un caso anidado de dos grupos de comillas NOTA: Esta expresin es recursiva, si en un prrafo hay ms de unas comillas de cierre, en la primera pasada slo se sustituir una Ejemplo: este es un caso anidado de un grupo de comillas Quedando: este es un caso anidado de un grupo de comillas Si se emplea reemplazar todo, una vez usado es necesario seguir emplendolo hasta obtener que no se encuentran ms coincidencias. Quedando: este es un caso anidado de un grupo de comillas [R] 1.025 (|<p([^>]+?)?>?)([^\n]+?)?(?<!=)\K["]([^\s>][^\n"=]+?)["] \4 Esta expresin detecta grupos de comillas anidados localizando inicialmente el smbolo de apertura en alguna parte del prrafo. Esta expresin tiene en cuenta que el cierre de las comillas de apertura puede encontrarse en otro prrafo distinto. Ejemplo: este es un caso anidado de dos grupos de comillas Quedando: este es un caso anidado de dos grupos de comillas NOTA: Esta expresin es recursiva, si en un Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] prrafo hay ms de unas comillas anidadas, en la primera pasada slo se sustituir el primer grupo. Si se emplea reemplazar todo, una vez usado es necesario seguir emplendolo hasta obtener que no se encuentran ms coincidencias. Quedando: este es un caso anidado de dos grupos de comillas [R] 1.026 (?<!=)["]([^\s>]([^\n"=]+?)?)["](?=(([^\n]+?))?) \1 Esta expresin es complementaria de la anterior y tambin detecta grupos de comillas anidados pero localizando inicialmente el smbolo de cierre en alguna parte del prrafo. Esta expresin tiene en cuenta que la apertura de las comillas de cierre puede encontrarse en otro prrafo distinto. Ejemplo: este es un caso anidado de dos grupos de comillas Quedando: este es un caso anidado de dos grupos de comillas NOTA: Esta expresin es recursiva, si en un prrafo hay ms de unas comillas anidadas, en la primera pasada slo se sustituir el primer grupo. Si se emplea reemplazar todo, una vez usado es necesario seguir emplendolo hasta obtener que no se encuentran ms coincidencias. Quedando: este es un caso anidado de dos grupos de comillas [R] 1.027 (<p([^>]+?)?>[]|)[^\n]+\n{2}[^\n]+<p([^<]+?)?>?\K(?=[^\n]+?</p>)|<p([^>]+?)?>[^\n]+\n{2}[^\n]+<p([^<]+?)?> ?\K(?=[^][^\n]+?</p>) Esta expresin localizar los posibles dilogos o pensamientos que continan en prrafos sucesivos. Ejemplo: Este es un caso de continuidad de dilogo Quedando: Este es un caso de continuidad de dilogo NOTA: Esta expresin es recursiva, ya que verifica lo existente en el prrafo anterior. Si se emplea reemplazar todo, una vez usado es necesario seguir emplendolo hasta obtener que no se encuentran ms coincidencias. Si a un dilogo le sigue un pensamiento en ms de un prrafo cambiar errneamente las primeras comillas del pensamiento. [R] 1.028 ([^\n]+?)(?=([^\n]+\n{2}+){1,10}.+<p([^>]+?)?>[^][^\n]+?) \1 Esta expresin trabaja sobre varios prrafos a la vez e intenta localizar textos entre comillas dentro de otro entrecomillado cuando el principal ocupa varios prrafos. Ejemplo: Este es un caso anidado de comillas en el que ste es otro prrafo y ste otro prrafo ms y as sucesivamente hasta que se produce el cierre principal de comillas. Quedando: Este es un caso anidado de comillas en el que ste es otro prrafo y ste otro prrafo ms y as sucesivamente hasta que se produce el cierre principal de comillas. NOTA: Esta expresin es recursiva, ya que verifica lo existente en prrafos anteriores. Si se emplea reemplazar todo, una vez usado es necesario seguir emplendolo hasta obtener que no se encuentran ms coincidencias. 1.029 <p([^>]+?)?>([^"\n]+)?[^"=]\K['"]|>[]</ No hay sta es una comprobacin final que buscar posibles comillas sin pareja o dudosas. 2 GUIN DE DILOGO Este grupo de expresiones forma seguramente el ncleo principal de las bsquedas ya que de su correcta posicin depende la mayora de la veces el disfrute de la lectura. El reemplazo puede no valer si la estructura de la frase es errnea, por ejemplo si alguno de los guiones implicase un prrafo nuevo y cambio de interlocutor. NOTA: RAE (Raya: usos 2.3) 2.01 (?|\pP\s\K[-](?=\s(\pP+)?\p{Lu})|(?<!em|ng)[\s>!?]\K?[-](?=[\PN{2}\S]|\s[^\pN\p{Lu}])|\S{2}\K[-](?=\s| [^\pL\pN])) Sirve para transformar los guiones del tipo signo menos (-) o – () por el guin de dilogo mdash () Ejemplo: Este es un caso de -guiones explicativos- en texto Quedando: Este es un caso de guiones explicativos en texto 2.02 ((?<!>)|[\pN\pL!?)\]](<.+?"?>)?)[]((<.+?"?>)?[\pN\pL(\[]) \1 \3 Detectar guiones pegados a una letra por cada lado. Aqu no hay posibilidad de reemplazo porque el espacio puede estar por delante o por detrs, as que hay que verlos uno a uno. Ejemplo: Este es un caso deguiones explicativosen texto En el primer caso el espacio hay que dejarlo por delante del guin y en cambio en el segundo tiene que ser por detrs. NOTA: El reemplazo siempre se efecta dejando el espacio en blanco por delante, por lo que en ocasiones ser incorrecto. Pero en estos casos la expresin posterior 2.06 realizar su posicionamiento correcto. 2.03 (\s\K[^\n]+[^.,:;])(\s|(?|((?<!etc|C|[.\s].)\.)|([,;:])))()(?=\s|[,\.;:]) \1\4\3 Esta expresin detectar errores de espacios Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] inmediatamente antes del guin de cierre en frases entre dos guiones. Ejemplo: Este es un caso posible de guiones en texto Quedando: Este es un caso posible de guiones en texto Tambin detecta situaciones de permutacin de smbolos de puntuacin en el guin de cierre. Ejemplo: Este es un caso posible de guiones. En texto Quedando: Este es un caso posible de guiones. En texto 2.04 (\s\K)[\s.,:;]{1,2}([^\n]+?\S(|$)) \1\2 Esta expresin detectar errores de espacios inmediatamente despus del guin de apertura en frases entre dos guiones. Ejemplo: Este es un caso posible de guiones en texto Quedando: Este es un caso posible de guiones en texto 2.05 (<p([^>]+?)?>[^\n]+[^\s])()(|\pP)(\s)? \1\4\5\3 Esta bsqueda busca dos patrones especficos que no pueden darse: una frase entre guiones cuando el de apertura es el del propio inicio del dilogo o dos guiones de apertura consecutivos sin guin de cierre. Finaliza la resolucin de determinados casos corregidos con la expresin 2.04. Ejemplo: <p>Este es el caso sealado, en el texto Quedando: <p>Este es el caso sealado, en el texto Ejemplo: Este es el caso sealado, en el texto Quedando: Este es el caso sealado, en el texto NOTA: En ocasiones la deteccin se debe a que ha localizado un salto de prrafo incorrecto cuando debiera producirse una continuidad con el anterior. En este caso el reemplazo propuesto no es vlido y hay que realizar manualmente la eliminacin del salto de prrafo. 2.06 (\s[^\n]+?)(|[.,:;])(\s)() \1\4\2\3 Esta bsqueda puede tener una utilidad doble pues se trata de un comentario entre guiones en el que el guin final est mal colocado, bien por haberse separado de la ltima palabra o bien por que debiera comenzar un nuevo prrafo. Ejemplo: Este es un caso posible, que puede solucionarse. Quedando: Este es un caso posible, que puede solucionarse. Pero en cambio: Ejemplo: <p>En este caso Sabes? Qu? El dilogo debe aparecer en prrafo nuevo y por tanto la sustitucin hay que hacerla manualmente. 2.07 ([\.,:;\s]|<p([^>]+)?>(?!\P{Ll}+[.:]))([^\n]+)()([\.,:;]?)(\s) \1\3\5\6\4 Localiza frases en las que existiendo un guin explicativo de cierre falta su apertura y en donde lo ms probable es que el guin de cierre sea realmente de apertura. Ejemplo: Espera dijo. No te vayas le acuci. Quedando: Espera dijo. No te vayas le acuci. NOTA: Se ha excluido de la deteccin los inicios de obras de teatro en los que a la etiqueta de prrafo sigue el nombre del personaje en maysculas y una raya. 2.08 (?<=\s)[^\n]+\s\P{Lu}+[-](?=\s|\pP|\p{Ll}[^<\n]+?</p>)|<p(>|.+?>)[^\n]+\s[^\p{Lu}]+[^\s\pN][-]\P{Lu} [^\n\pP<]+([^\s]|(?=\.</p>)) No hay Detecta la presencia de guiones cortos que apareciendo como parte de una palabra compuesta debieran ser guiones explicativos. Ejemplo: los guiones usados-no estn bien delimitados Debiendo ser los guiones usados no estn bien delimitados NOTA: En ocasiones la deteccin se debe a que ha localizado en la frase un signo menos que forma parte de un nombre compuesto y que por tanto no se trata de un guin que debiera ser raya. 2.09 <p([^>]+)?>(?!\P{Ll}+[.:])[^][^\n]+(?<!>)(?=[^\n]+$) No hay Esta expresin detecta errores de guiones de dilogo o explicativos en el caso de que en el prrafo solo exista uno. Excepto cuando en el comienzo del prrafo aparezcan comillas angulares que indiquen una continuacin de dilogo iniciado en prrafos anteriores. NOTA: Se ha excluido de la deteccin los inicios de obras de teatro en los que a la etiqueta de prrafo sigue el nombre del personaje en maysculas y una raya. 3 SIGNOS DE PUNTUACIN Este grupo busca distintos errores relacionados con diferentes signos de puntuacin del texto. Los ms frecuentes son la ausencia de mayscula tras un punto o la separacin de los signos de puntuacin del texto. 3.01 ([\pL?!)\]]|(?<!)\.|[\pL\d>\])]|[?!](?!\s\.))\s([,.;:\?!)]) \1\2 Esta expresin buscar espacios entre la ltima letra de un texto y los caracteres de puntuacin que le siguen: Ejemplo: los dos puntos : se encuentran Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] separados del texto Quedando: los dos puntos: ya no se encuentran separados del texto Ejemplo: sucede lo mismo . con el punto tras el guin. Quedando: ya no sucede lo mismo. con el punto tras el guin. 3.02 (?<!"|[\s;]\p{Lu}|\..|[\s;].{2}|\s\p{Ll}{3}|\s\p{Lu}\p{Ll}{2})[;,.:]{2,}|\pL\K\.\.|\.|[.,:;]<(a|s)[^\n,]+?[^;]</a>(</sup>)?[.,;:] Esta expresin busca signos de puntuacin consecutivos que no pueden darse como dos puntos seguidos o un punto seguido de coma. En lo posible trata de evitar detecciones de iniciales seguidas de coma del tipo Washington D. C., o Murder Inc., o etc., Ejemplo: Este es un caso no vlido.. Ejemplo: Este es otro caso,, detectado NOTA: aunque se propone un reemplazo por el caracter puntos suspensivos, la casustica es muy amplia y en muchos otros casos lo necesario es suprimir alguno de los caracteres repetidos o incluso eliminarlos. 3.03 (?|([([])\s(\S)|(\S-)\s) \1\2 Esta expresin busca signos de apertura separados por un espacio del texto que les sigue. Ejemplo: Aqu detectara el espacio previo al texto. Quedando: Aqu ha suprimido el espacio previo al texto. Ejemplo: Aqu detectara el espacio previo al texto. Quedando: Aqu ha suprimido el espacio previo al texto. 3.04 ((?<!ww|&am|bs)[\pL][\.,;:\?!)\]]{1,3}|\pL)(([]){0,2}(\b|(?i)[]).(?!.."|html|(et|om|rg)[\s\pP<])) \1 \2 Esta expresin busca un texto seguido de algn signo de puntuacin y seguido de otro texto pero sin la existencia del espacio de separacin entre ellos. Ejemplo: Este sera el caso,ms simple que detectara. Quedando: Este sera el caso, ms simple ya corregido. NOTA: en el reemplazo hay un espacio entre \1 y \2 Tras el uso de esta expresin es conveniente la revisin con algunas de las expresiones del grupo B con el fin de evitar el salto de lnea en los espacios de separacin entre las abreviaturas. 3.05 (?(?=<p.+(?:centr|dere|sub[ct]).+?">) |<p(?:[^/>]+)?>[^\n]*\K(?|([^\d!?.])(?=\s<a)|(((?<! |\.|,\s\d{3})[^"?:!.*/>\])]| (?<!/>|[.?;!>]|\.\pN|\.\d{2})</[^c>]+?>)(?=</p>\s*<p([^/>]+"(?!derecha)[^/>]+(?<!derecha)")?>(<[^>]+?>)?\pP*\p{Lu} (?!ios)|</p>\s*</?[bd])))) \1. Esta expresin detecta saltos de prrafo sin punto final. Aunque se propone un reemplazo consistente en la adicin del punto final hay que tener en cuenta que la bsqueda puede dar como resultado un final de prrafo que no debiera serlo cuya correccin slo puede realizarse de forma manual. Tambin detectar la separacin de la llamada a las notas de la palabra. Los resultados pueden ser vlidos en finales de estrofas, ttulos de captulos, finales de cartas La expresin no analiza los encabezados <h> de captulo, ni tampoco los prrafos que incluyen una clase que contenga en alguna parte de su texto subt o subc en la hiptesis de que se tratan de subcaptulos. Tampoco analiza prrafos que incluyan la clase derecha en la hiptesis de que se tratan de pies de carta. Igualmente no detectar la ausencia de punto final si el prrafo siguiente comienza por minscula, en la hiptesis de que puede tratarse de un verso. 3.06 [,.;:<\(\[]{1,3}\.(?=</p>) . Esta expresin busca finales de prrafo con signos de puntuacin que no pueden encontrarse en esa posicin. 3.07 [;,.:]{2,}\s[;,.:]|([:.;])\s\1|[:.;]\s[,.;:]|[.;:,]\s[?!] No hay Esta expresin busca combinaciones de signos de puntuacin que no deben darse Ejemplo: Este sera un caso. que tiene que detectar. 3.08 (?|(\PN\K\pN)[\s.](\pN{3}(?!\.\pN))|(\pN)\s(%)) \1\2 Esta expresin busca nmeros de 4 cifras o cifras con porcentajes para eliminar el punto de millar o el posible espacio previo al smbolo % Ejemplo 1.234 Quedando 1234 Ejemplo 5 % Quedando 5% NOTA: RAE (Nmeros 2a) y RAE (Nmeros 1.2c) [R] 3.09 (?|(?<=\d{2}|\d{3})\.?(\d{3})(?![.\d])|(?<=\d)\.?(\d{3})(?=&)) \1 Esta expresin elimina los puntos de millares en nmeros mayores de 4 cifras sustituyndolos por espacios realizados con la etiqueta Tambin detectar nmeros con ms de cuatro cifras en los que no se ha empleado ni el espacio ni el punto el su divisin. Ejemplo: 12.345.678.900 Quedando: 12 345 678 900 Ejemplo: 12345678900 Quedando: 12 345 678 900 Tras el uso de esta expresin es conveniente la revisin con algunas de las expresiones del grupo B con el fin de evitar el salto de lnea en los espacios de separacin entre los nmeros. Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] NOTA: RAE (Nmeros 2a) 3.10 (?|(([?!])(<[^>]+?>)?)\.|(?<!etc|\s\p{Lu})[,.:;]((<[^>]+?>)?[?!])) \1 Esta expresin busca frases finalizadas en interrogacin o interjeccin y que van seguidas de un punto. Tambin busca el caso inverso. Ejemplo: ste sera un caso encontrado!. Quedando: ste sera un caso encontrado! Ejemplo: ste sera otro caso encontrado.! Quedando: ste sera otro caso encontrado! 3.11 \pN\s.{1,2}\K\.(?!\s\p{Lu}|</[hp]|[&\pL]) Mediante esta expresin se detectan smbolos seguidos de un punto para proceder a su eliminacin. Ejemplo: Se trataba de un can de 200 mm. Quedando: Se trataba de un can de 200 mm NOTA: RAE (Smbolos 2a) 4 PUNTOS SUSPENSIVOS Este grupo de bsquedas localizar posiciones errneas del carcter nico puntos suspensivos: NOTA: RAE (Puntos suspensivos) 4.01 ()([^\s\.,;:]) \1 \2 Esta expresin busca puntos suspensivos al final de una frase y que se encuentran unidos a un guin de apertura. Ejemplo: ste es un casodetectado por la bsqueda. Quedando: ste ya no es un caso detectado por la bsqueda. NOTA: el reemplazo lleva un espacio en blanco entre las sustituciones \1 y \2 4.02 (<.+?"?>)?(:?)[.,;]?\s(\s)|()(\s)() \1\2\3\4\6\5 Esta expresin sirve para localizar puntos suspensivos iniciales separados tanto del guin de dilogo inicial del prrafo como de la primera palabra. Ejemplo: <p> sta es una frase que tiene que detectar. Quedando: <p> sta es una frase que ya no detectar. 4.03 (((?|[]|<[^>]+?>)[]?)([,;](?=\S))?)(<[^>]+?>)?(?![,;\s?!<)]|</p>) \1 \4 Esta expresin detecta puntos suspensivos iniciales que se encuentran adosados a texto. Ejemplo: Esta situacin debe detectarse. Quedando: Esta situacin ya no debe detectarse. NOTA: Hay un espacio final en blanco tras \1 NOTA: RAE (Puntos suspensivos 2h) 4.04 ()\s(\s|[!\?)]) \1\2 Esta expresin detecta un espacio en blanco tras puntos suspensivos finales y previos a un guin de cierre, o cierre de interjecciones, interrogaciones o comillas. Ejemplo: Esta situacin debe detectarse. Quedando: Esta situacin no debe detectarse. Ejemplo: Esta situacin !, debe detectarse. Quedando: Esta situacin!, no debe detectarse. Ejemplo: Esta situacin ? Debe detectarse. Quedando: Esta situacin? No debe detectarse. Ejemplo: Esta situacin debe detectarse. Quedando: Esta situacin no debe detectarse. 4.05 (?|([^;:,\.])|(?<![:;.,]))\s([\s?,:;!)]) \1\2 Esta expresin localiza puntos suspensivos con un espacio a ambos lados, cuando el carcter precedente no es un guin ni un signo de puntuacin. Ejemplo: ste es un ejemplo en el que tiene que detenerse. Quedando ste no es un ejemplo en el que tiene que detenerse. 5 MAYSCULAS Y MINSCULAS Este grupo de bsquedas detectar errores en los textos relacionados con el punto y sus equivalentes a efectos ortogrficos. Muchas de las expresiones pueden dar detecciones en lugares vlidos pues muchas son las posibilidades del idioma en el uso de las maysculas, los reemplazos que se proponen lo son para aquellos casos en los que el revisor decida que debe hacerse el cambio. 5.01 ([^>(\p{Lu}.]{4}\K[^\p{Lu}c]?\.[)]?(<[^>]+?>)?\s|[^c]\.\s|(?:[?!.]\s[^]+|[!?.]+[^]*)\K:\s)(\p{P}{0,2}<[^>]+? >)?([\(\[]{0,2})(\p{Ll})(?![.)]) \1\3\4\U\5\E Esta expresin detectar situaciones en las que tras un punto o su equivalente ortogrfico la siguiente palabra comience por minscula. Dentro de lo posible intenta no detenerse tras abreviaturas con punto seguidas de minscula, aunque dadas las limitaciones del propio lenguaje RegEx no siempre es posible. NOTA: en ocasiones el punto detectado debe ser otro signo de puntuacin diferente en cuyo caso debe ser sustituido de forma manual. 5.02 (([,;]\s[]|,\s|,\s)(\p{P}{0,2}<[^>]+?>)?([\(\[]){0,2})(\p{Lu}) \1\L\5\E Esta expresin busca situaciones en las que se combinan simultneamente una coma y un guin de dilogo y comprueba si tras esa coma aparece una mayscula. Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] Ejemplo: ste sera un caso, En el que existira deteccin Quedando: ste no sera un caso, en el que existira deteccin Ejemplo: ste sera un caso, En el que existira deteccin Quedando: ste no sera un caso, en el que existira deteccin
NOTA: en el caso que la primera letra fuese un nombre propio aunque exista una deteccin del patrn buscado no se tratara obviamente de un error. Tambin puede darse la circunstancia de que la coma deba ser un punto, en cuyo caso hay que corregirlo manualmente 5.03 (?|(\pL[!?)\]]?)(\s)|(\pL)(\s)|(\pL<[^\n?!,;:.]+?\.\.[^<]+?<[^\n=]+>)(\s))((\pP{0,2}<[^>]+?>)?\pP{0,2}(?<!)\p{Lu}) \1.\2\3 Esta expresin acta prcticamente como inversa de la anterior ya que su cometido es comprobar, cuando hay un guin de dilogo por medio, si la presencia de una mayscula viene precedida de un signo de puntuacin.
Ejemplo: En este caso Es posible que exista un error. Quedando: En este caso. No existe un error. Ejemplo: En este caso Es posible que exista un error. Quedando: En este caso. No existe un error.
NOTA: al igual que en la expresin anterior si la primera letra fuese un nombre propio aunque exista una deteccin del patrn buscado no se tratara de un error. 5.04 (<p([^>]+)?"?>)([]?)[\s./](?!) \1\3 Esta expresin comprueba si al comienzo de un prrafo aparece cualquier carcter que no sea vlido. Ejemplo: <p>/Este tipo de inicio lo considerara no vlido. Quedando: <p>Este tipo de inicio ya sera vlido. Ejemplo: <p>En ste tambin habra una deteccin. Quedando: <p>ste tambin sera vlido. 5.05 (\n\s{2}<p.+?(?<![,;:])</p>|[.*!?][)\]]*(<[^>]*>)*</p>|(?<!p)>)\s*(<p[^>]*>)([]*[]*(<[^>]+?>)*[(\[]*)\K(\p{Ll})(?! [P)]) \U\6\E Esta expresin comprueba si la primera letra de comienzo de prrafo es un carcter en maysculas. 6 SIGNOS DE APERTURA Y CIERRE Este grupo trata de localizar errores en aquellas frases que utilicen smbolos tales como interrogaciones, interjecciones, parntesis o comillas y comprueban su correcta colocacin y emparejamiento. 6.01 (?<!<p)\.?(?|(?<!["(])([!?>][)]{1,2})|(?<![.(])([^\s.]\K[\pL\pN>])\.([)]{1,2})|(?<![>(\s])([^>.])([)]{1,2}))((?:<[^#>]+>) {0,3})([^\n!):;?,."]([^\p{Lu}h\s]{0,3}|[^oy.]{0,2}<[^>]+?>.{0,2}|(<a|sup).+</a>(</sup>)?(</p>)?)?(\p{Lu}(?!\p{Lu}|.\.)|\pN(?! [.,:;-\pN])|(?=\n))) \1\2.\3\4 Esta expresin localiza frases entre comillas angulares o entre parntesis que terminando en interrogacin o exclamacin y continuando con mayscula falta el punto final. Tambin encuentran frases entrecomilladas o entre parntesis que tienen su punto final antes del respectivo cierre. Ejemplo: Aqu tiene que efectuarse? Una deteccin. Quedando: Aqu ya no tiene que efectuarse?. Una deteccin. Ejemplo: Aqu tiene que efectuarse. Una deteccin. Quedando: Aqu ya no tiene que efectuarse. Una deteccin. Ejemplo: Aqu tiene que efectuarse Una deteccin. Quedando: Aqu ya no tiene que efectuarse. Una deteccin. NOTA: RAE (Punto 3.1) 6.02 (^[^\n]+?)\s(?!<em>|)[^\s]+\K([-]|[]\s)((?=\p{Ll}[^-]{3}[^\n]+$)) \1\3 Esta expresin localiza dos palabras iniciadas en minscula y separadas por guiones y que en principio no se tratan de palabras compuestas. Ejemplo: ste es un caso con creto que tiene que detectar. Quedando: ste es un caso concreto que no tiene que detectar. Ejemplo: ste es otro ca-so en que debe detenerse. Quedando ste es otro caso en que ya no debe detenerse. NOTA: Detectar palabras compuestas vlidas que por tanto no deben corregirse. Sin embargo no debe encontrar combinaciones del tipo Coca-Cola. Las combinaciones ex-algo las detecta otra expresin. 6.03 (?|([?!])\s([]?(<[^>]+?>){1,2})|([?!](?:<[^>]+?>){0,2}[)]?)\s)([(]{0,2}\p{Ll}) \1, \2\4 Esta expresin localiza frases interrogativas o exclamativas contiguas entre las que no existe ningn signo de puntuacin pero nicamente cuando la segunda frase comienza por minscula. En estas condiciones debe existir una coma separando ambas frases o bien debe seguirse de mayscula. El reemplazo solo contempla la primera posibilidad. Ejemplo: Es esto un fallo? verdad? Quedando: Esto no es un fallo?, verdad? NOTA: RAE (Signos interrogacin y exclamacin 2f) 6.04 (?s)((?<!<)!|<body>)(?!!)[^!]+(?=(?<!\()!(?-s)(?!.*</em>)) No hay Esta expresin localiza frases entre interjecciones en las que existiendo el signo de cierre falta su apertura. Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] 6.05 (?s)((?<!<)\?(?!>)|<body>)(?!\?)[^?]+(?=\?(?-s)(?!.*</em>)) No hay Esta expresin localiza frases entre interrogaciones en las que existiendo el signo de cierre falta su apertura. 6.06 (?s)(?<!>)[^]+?(?=(?<!>)) No hay Esta expresin localiza frases entre comillas angulares en las que existiendo el signo de cierre falta su apertura. 6.07 (?!)[^!]+?(?=|</body>) No hay Esta expresin localiza frases entre interjecciones en las que existiendo el signo de apertura falta su cierre. 6.08 (?!)[^\?]+?(?=|</body>) No hay Esta expresin localiza frases entre interrogaciones en las que existiendo el signo de apertura falta su cierre. 6.09 [^]+?(?=|</body>)|[^=]"[\pL\pN\.,:;](?!tt) No hay Esta expresin localiza frases entre comillas angulares en las que existiendo el signo de apertura falta su cierre. 6.10 ([(\[][^\])\n]+(?=$|[\[(])|^[^(\[\n]+?(?<!\s.|\s.{2}|>.</em>|>.{2}</em>|>.</strong>|>.{2}</strong>)(?<!|\pN|>\p{Ll})[)\]])|(? <!\pN|[>\s]\p{Ll}|\*)[\])][^\[(\n]+?[\])] No hay Esta expresin localiza frases entre parntesis o corchetes en las que falta el respectivo smbolo de apertura o de cierre. NOTA: Combinaciones anidadas de parntesis y corchetes o viceversa pueden ser vlidas. 6.11 (?|[]([^?!]+)\K()([!?])|([^?!]+)\K(!)(\?)|([^?!]+)\K(\?)(!)|()([])(?=([^!]+)![])|()([])(?=([^?!]+)\?[])|[] ([^?!]+)\K()([!?])) \3\2\1 Esta expresin localiza frases entre interrogaciones, interjecciones, comillas angulares y comillas tipogrficas en las que las posiciones de los signos de apertura no guardan relacin de orden con los de cierre. Ejemplo: frase entre signos? Quedando: frase entre signos? Ejemplo: frase entre signos!? Quedando: frase entre signos?! NOTA: La expresin tiene en cuenta si debe permutar los signos de apertura o los de cierre. 7 <ETIQUETAS> Este grupo intenta localizar errores relacionados con la mala colocacin de las etiquetas de nfasis o resalto respecto de los signos de puntuacin. 7.01 Etiquetas a clases de prrafo Este subgrupo de tres bsquedas realiza la sustitucin de las etiquetas que afectan a la totalidad de un prrafo por la clase correspondiente aplicada en l. 7.011 <p(?:(\s)class="([^"]*)")?><em>([^/]+(?![\pL\s]+)((?=/[FITabs]).+|))</em>(?=[.]?</p>) <p class="\2\1cursiva">\3 Esta expresin busca prrafos, con o sin clases definidas, en los que la totalidad de su texto viene abarcada por las etiquetas <em>, con el fin de eliminarlas e incluir la clase "cursiva" como clase del prrafo acompaando a las posibles existentes. Ejemplo: <p><em>Parrafo enfatizado.</em> </p> Quedando: <p class="cursiva">Parrafo enfatizado.</p> 7.012 <p(?:(\s)class="([^"]*)")?><small>([^/]+(?![\pL\s]+)((?=/[FITabs]).+|))</small>(?=[.]?</p>) <p class="\2\1versalita">\3 Esta expresin busca prrafos, con o sin clases definidas, en los que la totalidad de su texto viene abarcada por las etiquetas <small>, con el fin de eliminarlas e incluir la clase "versalita" como clase del prrafo acompaando a las posibles existentes. Ejemplo: <p><small>Parrafo en versalitas. </small></p> Quedando: <p class="versalita">Parrafo en versalitas.</p> 7.013 <p(?:(\s)class="([^"]*)")?><strong>([^/]+(?![\pL\s]+)((?=/[FITabs]).+|))</strong>(?=[.]?</p>) <p class="\2\1negrita">\3 Esta expresin busca prrafos, con o sin clases definidas, en los que la totalidad de su texto viene abarcada por las etiquetas <strong>, con el fin de eliminarlas e incluir la clase "negrita" como clase del prrafo acompaando a las posibles existentes. Ejemplo: <p><strong>Parrafo resaltado. </strong></p> Quedando: <p class="negrita">Parrafo resaltado.</p> 7.02 </?[^<lpdau]{1,6}>((?!do|re|m[i]|fa|sol|la|s[i]|t[u]|un|\d{1,2})[^\p{Lu})(|\[:]{0,2})</?[^</lpdahu]{1,6}(\sclass.+?")?> \1 Esta expresin est pensada para cuando al escanear texto el escner coloca entre etiquetas de 0 a 2 caracteres. Tambin detectar casos en los que las etiquetas se abren y cierran consecutivamente de forma innecesaria. Ejemplo: <em></em> Quedando: eliminara las etiquetas Ejemplo: <em>a</em> Quedando: a Ejemplo: <em>Este enfatizado</em> <em>debiera ser nico</em> Quedando: <em>Este enfatizado debiera ser nico</em> NOTA: En ocasiones las detecciones no se tratan de errores sino de enfatizaciones de palabras cortas y por tanto vlidas. 7.03 (?|<(?:em|strong)>[^][^\[(/\n]+?\K(?<![;\s]..|\..\.|\..|[;\s].|\d|\d\pL)([.,:;)]?\pP)(</(em|strong)>)(?!\|)|((?<=>)<[^pa>]+>) ()|(</[^>]+>)(s)) \2\1 Esta expresin permite localizar signos finales de puntuacin dentro de un texto delimitado por las etiquetas de enfatizado o negrita, permitiendo al revisor extraerlos fuera de las mencionadas etiquetas. Ejemplo: ste sera un posible <strong>caso!</strong> Quedando: ste sera un posible <strong>caso</strong>! Ejemplo: ste sera otro <em>caso</em> posible Quedando: ste sera otro <em>caso</em> posible Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] 7.04 (<[^pl>]+>)([\[(])((?!N\.|Nota de)[^(/\n]+?)((?<!\.\s.\.)[)\]])(</[^p>]+>) \2\1\3\5\4 Esta expresin encuentra frases entre etiquetas y a su vez entre comillas o parntesis o corchetes, extrayendo del nfasis o resalto los smbolos de las comillas, corchetes o parntesis. Ejemplo: <strong>ste sera un posible caso</strong> Quedando: <strong>ste sera un posible caso</strong> Ejemplo: ste sera otro <em>caso</em> posible Quedando: ste sera otro <em>caso</em> posible 7.05 (?<![(])(<[^hp>]+>)([(]+)(?!N\.|Nota de)(?=[^\n)<]+</[^>]+>[!?)]) \2\1 Esta expresin est relacionada con la anterior y su comportamiento depende la decisin tomada en ella. Su objetivo es localizar signos iniciales de puntuacin dentro de un texto delimitado por etiquetas de enfatizado o negrita, permitiendo al revisor extraerlos fuera de las mencionadas etiquetas. La deteccin slo se produce si el signo de cierre est fuera de la correspondiente etiqueta. Ejemplo: <strong>ste sera un posible caso</strong>! Quedando: <strong>ste sera un posible caso</strong>! Ejemplo: ste sera otro <em>caso</em> posible Quedando: ste sera otro <em>caso</em> posible 7.06 (?|([\pL\pN][.,;:?!)]{0,2})(\pP{0,3}(?<! )<[^/<au]+?>)|(?<!>\p{Lu}|/>)(</[^<]+?>(?![,.:;]?&)[?!)]{0,2}[.,;: ]{0,2})(\pP{0,3}[\pL\pN](?!<su|\d?</span))) \1 \2 Esta expresin sirve para localiza palabras entre etiquetas sin espacio previo o posterior a ellas y por tanto unidas a otras palabras. Ejemplo: En este caso<em>concreto</em> tiene que parar. Quedando: En este caso <em>concreto</em> tiene que parar. 7.07 [\pL\pN>)]\K(?[.,;:!?)\]])\s?(<(a|s)[^\n,]+?[^;]</a>(</sup>)?(?![.,;:!?)\]])?) \2\1 Esta expresin tiene como cometido localizar y corregir las posiciones de las llamadas a las notas de un libro manteniendo el criterio de situarlas antes de los signos de puntuacin. Ejemplo: Texto de <em>nota</em>. <llamada a nota> Quedando: Texto de <em>nota</em><llamada a nota>. NOTA: RAE (Comillas 3.c) 8 ORTOGRAFA, ACENTUACIN, TIPOGRAFAS En este grupo he includo como ayuda una serie de bsquedas que tienen por objeto unificar una serie de criterios ortogrficos y tipogrficos a lo largo del libro. Las nuevas normas gramaticales han producido modificaciones en algunos aspectos con raigambre por lo que en algunos textos los encontramos de una manera y en otros de otra. Mediante ellas el revisor podr adecuarlas en funcin de cmo hayan sido incluidas en su texto al objeto de mantener el mismo criterio. Igualmente se facilita el enfatizado y desenfatizado de una serie de extranjerismos, tratamientos personales y latinismos en concordancia con lo recomendado por la RAE. 8.01 Quitar tilde: RAE posterior a 2010 Las cinco expresiones que se incluyen en este subgrupo tienen por finalidad localizar los pronombres demostrativos y los monoslabos acabados en iis, iis, i e i con el fin de eliminar la tilde en ellos. 8.011 (\PL\K)((st?([ae]s?|os))) \1E\2 Esta bsqueda tiene por objeto unificar el criterio de acentuacin de los pronombres demostrativos. Si en el libro hay algunos acentuados pero no todos, esta bsqueda localizar sta ste stas sa sas y se con el fin de eliminar la tilde. NOTA: Como toda expresin que trabaja con grupos de palabras, es posible que no realice detecciones de los verbos que acompaa por no estar stos dentro de los incluidos en la expresin. 8.012 (?|(?i)(\PL\KAqu)(l(l(as?|os))?)|(?-i)(\PL\K)((st?([ae]s?|os)))) \1e\2 Esta bsqueda es similar a la anterior pero circunscrita a Aqul, Aqullos, Aqullas y los pronombres de la expresin 9.03 cuando aparecen en minscula. NOTA: Como toda expresin que trabaja con grupos de palabras, es posible que no realice detecciones de los verbos que acompaa por no estar stos dentro de los incluidos en la expresin. 8.013 (?i)\PL(?![ao])\pL{1,2}i\K(?=is\PL) a Esta bsqueda localiza los monoslabos acabados en iis con el fin de sustituirlos a criterio del revisor por sus equivalentes sin acento. 8.014 (?i)(?<=\PL)((([fglp]|cr)u?i?)|\pLi)\K(?=(is)?\PL) e Esta bsqueda es similar a la anterior para las palabras gui, li, pi, fi y cri. 8.015 (?i)(?<=\PL)(([dflprv]|[cf]r|gu)i)\K(?=\PL) o Esta bsqueda localiza di, fi, li, pi, ri, vi fri, cri y gui, con el fin de sustituirlas a criterio del revisor por sus equivalentes sin acento. 8.02 Poner tilde: RAE anterior a 2010 Las cinco expresiones que se incluyen en este subgrupo tienen por finalidad localizar los pronombres demostrativos y los monoslabos acabados en iais, ieis, ie e io con el fin de acentuarlos grficamente. 8.021 (?<![Aa]l|ala|costa|direccin|[Ee]l|entrada|lado|lmite|orientacin|orilla|parte|sentido)(\PL\K)E((st?(as?|e|os))(?=\s? [.,:;!?)]|(<.+?"?>)?\s(al?|(acce|po)dan?|antes?|apenas|an|con|cuy[ao]|de(?=\sl[ao]s?)|desde|[df]ijo|e[lns]?|e(ran? |st)|fue(r[ao]n?)?|fundamental(es)?|h(acen?|an?|izo)|l[aeo]s?|[lmsv]ea|[lmst]el?|ms|n[io]s?|nunca|[ouy](?!\s(aqu[e]l| [e]st?[aeo]s?|otr[ao]s?))|para|por|que(?=\s\S+[aei]r\PL)|qui[e]n|s[iou](lo)?n?|siempre|solan?|tan|un|v[ai]?|ya|\S* ([ai]ban?|[aer]r|[ae](r[ao]n|san)|(?<!atu|rem|tru)[ae]ndo|(?<!ca|dia|[fgt]o|iro|[mr]a)[bn](a|i)[ns]?|[^f]ecan?|garan?|[^gq] \1\2 Esta bsqueda tiene por objeto unificar el criterio de acentuacin de los pronombres demostrativos. Si en el libro hay algunos acentuados pero no todos, esta bsqueda Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] ((?<!f)i|u)e(ra|se)n?|\S[lr]aran?||(?<!ar|q|\s|\sg)[dptu]an?|rran?|(?<![egnt]|ad|br|ci|ech|id|gal|ja|jad|mis|ped|sos|ub)[^f] [rv]an?|uvo|(?<![eo]f|nm|p)(e[bn](e|sa)|(?<!nd)ice|lleva|ala|uele)n?))[!?,:;.)\]\s])) localizar Esta Este Estas Esa Esas y Ese con el fin de acentuarlos grficamente. NOTA: Como toda expresin que trabaja con grupos de palabras, es posible que no realice detecciones de los verbos que acompaa por no estar stos dentro de los incluidos en la expresin. 8.022 (?|(?i)(?:(?<![\PLd]el)\s\S*|\pP)(\PL\KAqu)e(l(l(as?|os))?)|(?:(?<![\PLd]el)\s\S*(? <!al|la|costa|direccin|el|entrada|lado|lmite|oeste\sa|orientacin|orilla|parte|sentido)|\pP)(?-i)(\PL\K)e((st?(as?|e|os))))(? =(\s[\[(])|[.,:;!?)]|\s\p{Lu}|(<.+?"?>)?\s(al?(?!\soeste)|(acce|po)dan?|antes?|apenas|an|con|cuy[ao]|de(? =\sl[ao]s?)|desde|[df]ijo|e[lns]?|e(ran?|st)|fue(r[ao]n?)?|fundamental(es)?|h(acen?|an?|izo)|l[aeo]s?|[lmsv]ea|[lmst]el? |ms|n[io]s?|nunca|[ouy](?!\s(aqu[e]l|[e]st?[aeo]s?|otr[ao]s?))|para|por|que(?=\s\S+[aei]r\PL)|qui[e]n|s[iou](lo)?n? |siempre|solan?|tan|un|v[ai]?|ya|\S*([ai]ban?|[aer]r|[ae](r[ao]n|san)|(?<!atu|rem|tru)[ae]ndo|(?<!ca|dia|[fgt]o|iro|[mr]a) [bn](a|i)[ns]?|[^f]ecan?|garan?|[^gq]((?<!f)i|u)e(ra|se)n?|\S[lr]aran?||(?<!ar|q|\s|\sg)[dptu]an?|rran?|(?<! [egnt]|ad|br|ci|ech|id|gal|ja|jad|mis|nic|ped|sos|ub)[^f][rv]an?|uvo|(?<![eo]f|nm|p)(e[bn](e|sa)|(?<!nd)ice|lleva| ala|uele)n?))[!?,:;.)\]\s]) \1\2 Esta bsqueda es similar a la anterior pero circunscrita a Aquel, Aquellos, Aquellas y los pronombres de la expresin 9.01 cuando aparecen en minscula. NOTA: Como toda expresin que trabaja con grupos de palabras, es posible que no realice detecciones de los verbos que acompaa por no estar stos dentro de los incluidos en la expresin. 8.023 (?i)\pLi\Ka(?=is\PL) Esta bsqueda localiza los monoslabos acabados en iais con el fin de sustituirlos a criterio del revisor por sus equivalentes con acento. 8.024 (?i)(?<=\PL)(([fgl]|cr)u?i)\Ke(?=\PL)|\pLi\Ke(?=is\PL) Esta bsqueda es similar a la anterior para las palabras guie, lie, fie y crie y sus plurales. 8.025 (?i)(?<=\PL)(([flpr]|[cf]r|gu)i)\Ko(?=\PL) Esta bsqueda localiza fio, lio, pio, rio, frio, crio y guio, con el fin de sustituirlas a criterio del revisor por sus equivalentes con acento. 8.03 Enfatizados Este grupo de expresiones detecta palabras comunes que deben enfatizarse siguiendo las recomendaciones de la RAE y el desenfatizado de trminos latinos adaptados al espaol. 8.031 (?i)(?<!m>|ep">|\pL)((baby(-sitter)?|best-?seller|bourbon|bri(dge|oche)|cabaret|chantilly|chiffon|compact disc|cr[ai]ck(et)?|croquet|(mini)?croissant|dandy|drugstore|dry|(e-)?mail|express|fast-food|ferrie|ghetto|graffiti|hacke?a? (do)?r?|(?-i)jean(?!-|\s\p{Lu})|jeep|(?i)jockey|loft|lounge|lunch|music-?hall|(?-i)nick|(? i)nightclub|pack|parking|pendrive|p[i]cnic|piercing|pin-up|ping-pong|p[i]tcher|(pon|troll)e?y|post(-it)? (?!\smrtem)|premium|pub|puenting|self-service|reset([^\s\pP]+?)?|rock(n| and) roll|round|(?-i)(boy )?scout|(?i)sex- shop|sho(ck|rt)|snob|snuff|spam|speaker|standing|stripper|swing|tempura|toilette|trench|tweed|voyeur|walkman|wifi|zap? ping|zoom|((brand|cook|countr|hipp|hobb|pant|whisk)(y(?!s)|ie)))(s|))(?!</(e|sp)|\pL) <em>\1</em> Esta expresin localiza extranjerismos que aparecen con frecuencia en los textos, permitiendo su enfatizado de forma automtica. 8.032 (?i)(?<!m>|\pL)(a\s(posteriori|priori)|ad hoc|alter ego|de facto|ex\s(aequo|professo)|grosso modo|habeas corpus|honoris causa|in\s(albis|crescendo|extremis|fraganti|situ|vitro)|ipso facto|modus\s(operandi|vivendi)|motu proprio|post mortem|quorum|sine die|statu quo|sine qua non|sub [ij]udice|sui generis|summum|via crucis|vox populi)(?! </(e|sp)|\pL) <em>\1</em> Esta expresin localiza latinismos que aparecen con frecuencia en los textos, permitiendo su enfatizado de forma automtica. NOTA: RAE (Latinismos) 8.033 (?i)<em>(lter ego|ex profeso|hbeas corpus|post mrtem|qurum|sub jdice|sui gneris|smmum|va crucis|vox ppuli)</em> \1 Esta expresin localiza latinismos adaptados al espaol y que pueden aparecer enfatizados en los textos, permitiendo eliminar su enfatizado de forma automtica. NOTA: RAE (Latinismos) 8.034 (?i)(?<!m>|\pL)((baronet|fr[a]u(lein)?|herr|m(a|es)dame|m(es|o)nsieur|mademoiselle|miss|pater|rabbi|sahib|sha|sir| ((mi)?lad)(y(?!s)|ie))(s|))(?!</e|[\pL-]) <em>\1</em> Esta expresin localiza tratamientos personales que aparecen con frecuencia en los textos, permitiendo su enfatizado de forma automtica. 8.04 (?i)((?<!ni\s)\PL\Kaun(?!\s(antes|aqu[e]l|as|cuando|despus|si|(\S+?[ae])ndo|en|sin))|adonde(?!\s(l|\S*(aban?|eran?| an?)))|\PL\K(cuan(ta)?|mas(?!\slos?)))(?=\PL) No hay Esta bsqueda pretende la localizacin de palabras frecuentes que pueden darse con o sin tilde. En concreto intenta localizar aqullas que debieran llevarla y no lo hacen. 8.05 \PL\K(?i)el(?=[.,:;?!)\]]|\s\p{Lu}|(<[^>]+>)|\s[(]?(<[^>]+>)?((casi|mismo|no)\s)?(abre|an|casi|[cf]?[lpr]?(gu)?io| [cgpt][io][md][ae]|dij?n?z?o|es?t?(ra)??|fue|[hvy]a|hacia|hizo|i[br][a]|jams|l[aeo]s?|[ms]e|nada|n?(os)?i? (?!\.)|p(one|udo)|[ouy]|s|\S+((?<!cap|domin|plat)i?s?|uvo|enas|m(bin|poco)|[aei](ba|r)|(?<!env|cl|ort|\sc|\sp|w)[aep] (r[ae]|se)|(?<!anv|\sgu|ig|iod|lic|sp|[\s]d)a|(?<!c[ar]|[rs]a)un?[cdy]e))[\s.,:;?!)\]]) No hay Esta expresin intenta localizar el o El cuando actan en forma de pronombre. Las detecciones se reducen a una serie de posibilidades corrientes pero no abarcan su totalidad. NOTA: Como toda expresin que trabaja con grupos de palabras, es posible que o bien no realice detecciones de los verbos que acompaa o detecte como errores casos que no lo son. NOTA: Si el nmero de coincidencias es elevado puede usarse como reemplazo l o l segn la capitalizacin deseada. 8.06 \PL(?i)t\Ku(?=[.,:;?!)\]]|(<[^>]+>)|\s[(]?(<[^>]+>)?((casi|mismo|no|siempre)\s)?(dij?n?z?iste|[hvy]a?s?|s| (fu|hic)iste|an|i[br][a]s|[mt]e|n?(os)?i?|l[aeo]s?|p(one|uede)s|[cgpt][io][md][ae]s|es?t?(ra)??s|[^\s\p{Lu}]{2,}((?<! [i]|dio|mie|o|uma)s|i?s?abas|uviste|enas|m(bin|poco)|[aei](ba|r)s|[aep](r[ae]|se)s|(?<!lic|sp|anv|ig|iod|\sgu)as)) [\s.,:;?!)\]]) Esta expresin localiza el pronombre tu sin tildar para reemplazarlo por el pronombre tildado. 8.07 (?i)D[][lmst]e(?=\PL) No hay Esta expresin encuentra formas acentuadas llanas de imperativos frecuentes del verbo dar que no deben ir tildadas. 8.08 \PL\K(anti|auto(?!\s(con|de))|co|ex|intra|neo|pluri|pos|pr[eo]|p?seudo|semi|s[u]p(er|ra)|vice)(\s(?!\p{Lu}|del?\PL| [oy]\s|profeso\PL|que)|-(?![\p{Lu}\pN])) \1 Esta expresin localiza distintos tipos de prefijos separados de la base a la que se anteponen con el fin de unirlos a ella. NOTA: RAE (Prefijos) 9 BSQUEDAS VARIAS Dentro de este grupo heterogneo se encuentran una serie de expresiones no incluidas en los anteriores por no ajustarse a las caractersticas de cada grupo. 9.01 (?i)[]\K(cuan.o\s(?!vaya)|como(?!\s(a|antes?|cul(es)?|cu[a]ndo|e[ln]|est?[ae]s?|hoy|(l[ao]s?)\sque|mi| [nv]uestr[ao]s?|para|por|qu(|in)|sea|s[iu]s?|todos?|usted(es)?|yo))|cual|([^\n!?]+?)?(((?<!aba|all|arse|lugar|qu)\s)? \K\ba?donde(?!\s(e[ln]|antes|estn|ha(st|y)a|m[i]s|muchos?|n[io]|quede|[st][u]|tod[ao]|una|usted(es)?|\S*(amos|ayas?| [duv]iera[ns]?|(ra|se)mos|ueda[ns]?)))|((?<!\PLa|l|es|hay|\PLyo)\s)\Kquien(?!\s(el(la)?|no|quiera|sea|tant[ao]s?|un[ao]? |\S*(ara[ns]?|iera[sn]?|i(ga|re)))))|que(?!\s([lms][ei]\s)?(\p{Lu}|alg[u](ie)?n[ao]?s?|apenas|aqu[e]l(la)?|a? s[i]|cada|cmo|con|de|dnde|Dios|[e]l(la)?|entr[ae]|[e]st?[aeo]s?|hasta|[hv]ay[^?]|hoy|iba|l[ao]s?\PL|nadie|no| [nv]uestros?|por|pueda|quin(es)?|san|slo|son?(is)?|tod[ao]s?|t[u]|una?|y[ao]|\S*([ae]l?te[ns]?|(an|e)cen?|(al| [in]|ha)g[a]i?[ns]?|[bdnrt]ara[ns]?|dure[ns]?|ep?an?|ee|e|elva[ns]?|o(jan?|ne)|rne[ns]?|st[e]n?|(?<!p)ue[drsv][ae][ns]?)| [^!?]*qu)))(?![\pL;,]) No hay Esta expresin es una utilidad que permite encontrar palabras entre interrogaciones o exclamaciones que comenzando por alguna partcula interrogativa debieran llevar tilde. 9.02 (?i)(\PL\K(pero|mas)),(\s[]) \2\3 Esta expresin busca el patrn formado por pero o mas seguido de una oracin interrogativa o exclamativa y separadas por Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] una coma, con el fin de eliminarla. Ejemplo: pero, qu me dices? Quedando: pero qu me dices? NOTA: RAE (Comas: usos incorrectos 3.3) 9.03 (?i)(?|([\pNn])(||<sup>er)|(N)\.o) \1.\2 Esta expresin localiza nmeros ordinales con letra volada en los que falta el punto de abreviatura entre dicho nmero y la letra volada. Ejemplo: 1 Quedando: 1. NOTA: RAE (Abreviaturas 6d) 9.04 ([^\pL\pN])\K((\pL|\pN){1,})(\s|<.{1,7}>\s<.{1,7}>)(?<!0{3}\PL)\2(?=[^\pL\pN-]) \1\2\4\2 Esta expresin permite localizar dos palabras iguales contiguas. Adems de la posibilidad de que se trate de un error puede darse el caso de que entre ambas palabras deban existir puntos suspensivos. El reemplazo se establece para este ltimo caso. 9.05 (?i)\PL\Kh(?=(e|as?)\s(?!lugar|(medio )?[\pL<>]*([ai]?do|[ilors]to|cho|e|h|qu[]|ll[]|c)\PL)) No hay Con esta expresin se intenta localizar frases que comienzan por ha, has o he y no son seguidas por verbos acabados en los finales de participio ms corrientes. En estas circunstancias ha, has y he probablemente se traten de errores y se refieran a la, las o le. Tambin la expresin puede servir para detectar fallos de concordancia. Ejemplo: ha puerta Ejemplo: he dijo Ejemplo: he dicha NOTA: Como toda expresin que trabaja con grupos de palabras, es posible que o bien no realice detecciones de los participios no incluidos o detecte errores que no lo son del tipo no ha lugar. 9.06 (?i)(?(?=vi[^i]|[clv]?i?d|[cm]m|[dm]i|clic|lcd|(m|ci)?v?il|[mdcl][<.,\s)\]]) |(?<=siglo\s|siglos\s|ao\s|aos\s|\P{Lu}{8}(? <!rayos)\s|\PL[oy]\s|[,;]\s|del\s|al\s|)([mdclxvi]+(?:-[mdclxvi]+)?)(?=[\s<)?!,.;:&]([^&\pN\p{Lu}\s]|\s(<[^>]+>)? (\pP{0,2}?\pL+?[.,;]?[<\s]|[&\pN])))(?!<small)) <small>\U\2\E</small> Localiza nmeros de cifras romanos que se encuentren en minsculas o maysculas y los transforma en maysculas versalitas. NOTA: La bsqueda no detecta el nmero VI por coincidencia con el pasado de ver, para la comprobacin de este ordinal es necesario usar la expresin 8.06a. La expresin tiene en cuenta la existencia de nombres propios previos al ordinal romano pero slo en una profundidad de 8 caracteres. NOTA: RAE (Uso de los nmeros romanos 3.1a) 9.06a (?i)(?(?=[clv]?i?d|[cm]m|[dm]i|clic|lcd|(m|ci)?v?il|[mdcl][<.,\s)\]]) |(?<=siglo\s|siglos\s|ao\s|aos\s|\P{Lu}{8}(? <!rayos)\s|\PL[oy]\s|[,;]\s|del\s|al\s|)([mdclxvi]+(?:-[mdclxvi]+)?)(?=[\s<)?!,.;:&]([^&\pN\p{Lu}\s]|\s(<[^>]+>)? (\pP{0,2}?\pL+?[.,;]?[<\s]|[&\pN])))(?!<small)) <small>\U\2\E</small> Esta expresin es totalmente anloga a la anterior pero aade la localizacin de VI, en este caso ser el corrector el que determine la necesidad o no del reemplazo. 9.07 (?i)(|(?<=\PL)(anos?|calibre\d+|(cu|gua)ndo|dientas?|[ds]o(?!\s(pena|pretexto)|-)|loa|muas?|n[o.]?\s(?=\pN)|pes?|por que|pulpito|(?<!con\s|decisiones\s|medida\s|muy\s|son\s)sabias?(?!\spalabra)|sgc-|(?<=el|un )sota|[tv]enias?|(?- i)Osear)(?=\PL)|(?<!;)&[^#a][^b;]+?;(?!&)|<br />) No hay Esta expresin localiza errores simples y frecuentes que no se han incluido en alguna de las bsquedas precedentes. Los resultados son vlidos en algunas ocasiones por lo que se debern comprobar una a una las coincidencias. Trminos buscados:
ano/s cundo dienta/s do guando loa mua/s osear pe/s por que pulpito sabia/s so sota tenia/s venia/s <br /> etiquetas & grados
N. 12 n.o 25 sgc- B. GRUPO DE EXPRESIONES PARA COMPATIBILIDAD DE DISPOSITIVOS Este grupo B tiene por finalidad proporcionar compatibilidad de la estructura del texto en el mayor nmero posible de lectores electrnicos. No se trata por lo tanto de expresiones que corrijan errores sino que intentan evitar comportamientos extraos de los lectores en el manejo que hacen del ePub. Estos comportamientos no se dan en todos los modelos pero la inclusin de las soluciones propuestas con estas RegEx posibilitan que no se produzcan en otros. Su empleo es opcional aunque conveniente. N BSQUEDA REEMPLAZO USO B.01 (?|<p>|<p( )class="((?!extenso).+)">)(.{4000,}</p>) <p class="extenso\1\2">\3 Permite la localizacin de prrafos de ms de 4000 caracteres y les aplica una clase extenso que est definida en el CSS. Con esta expresin se intenta solucionar el comportamiento de determinados lectores que cuando se encuentran con un prrafo extenso (ligeramente por encima de los cuatro mil caracteres) dividen de forma aleatoria el prrafo y lo colocan al principio de la siguiente pgina, dejando por lo tanto un espacio en blanco en la anterior. B.02 (?<!\pL)(\pL)\1?\.\K\s(?=(\pL)\2?\.(?!</sp)) Esta expresin localiza abreviaturas separadas por un espacio en blanco que queda sustituido por la etiqueta HTML Ejemplo: a. C. Quedando: a. C. Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] Con esta expresin se corrige la posibilidad de que los lectores separen en lneas diferentes la abreviatura si se encuentra al final de una lnea. Aunque la etiqueta realiza la misma separacin que un espacio en blanco, a efectos de los lectores es un espacio no divisible, por lo que siempre mantiene agrupado el conjunto. NOTA: Previo al empleo de esta expresin es aconsejable realizar un recuento del nmero de coincidencias y decidir al respecto. Esta expresin es aconsejable en libros con un nmero importante de abreviaturas. La expresin B.03 es capaz de detectar la mayor parte de las situaciones en las que puede dividirse un texto en dos lneas, incluidas las abreviaturas, pero introduce ms cantidad de texto en su solucin por emplear la etiqueta <span>seguida de la clase 'nosep'. La expresin B.02, si bien no es tan completa como la sealada B.03, reduce el nmero de caracteres en la situacin mencionada de un nmero elevado de abreviaturas. B.03 (?|(?<![\pL-]|[p"b]>|[p"b]><em>|[p"b]><strong>|p">\()\K(\p{Lu}<[^/>]+?>\S+? </s[^>]+>(?!-|\pL|\pN))|[^\pL>]\K(<big>\p{Lu}[^>]+?>[^<\s]+)(? =\PL)|\PL\K([]?((\pL)\3?\.\s)+(\pL)\4?\.[]?) (?!\s\pL\.)|\PL\K((\p{Lu}\s)+\p{Lu}(?!\s\p{Lu}|\pL))|(\p{Sc}?((? <!ep">)\pN{1,3}\s([x]\s)?)+\pN+(\s(\pL{1,2}\.|\p{Sc}))?(?!\s? (\pN|\pL{1,2}\.|\p{Sc})))|\PL\K((?:\p{Lu}.{1,2}\.\s)?[^>\s]+[\pL-]+ (?!\pL))|\s\K(\(?\pL(<[^>]+>)?[^\s\pP"/=]{3,}(<[^>]+>)?\s(<[^e>]+>)? [IVXLCM]+\)?(<[^u>]+>)?(?=(?<!</p>|</h.>)[\s.,:;\)!?]|</(h.|p)>))|[^/\pL- \pN]\K(\(?[\pL,\pN]{1,4}[:-][^<-\s\pP]{1,4}\)?([-,]\pN{1,4})?)(?=[.,:;?!\s] (?!\pN)|</)|\PL(\p{Lu}{1,2}(<.+b>)?(-\p{Lu}{1,4}(<.+b>)?)+)(?![\pL<\pN-]))(?! (</[^>]+>)?[]?</span>) <span class="nosep">\1</span> Esta expresin trata de manera nica las abreviaturas recogidas en la expresin B.02 junto con otros casos especiales como etiquetas <small> o <big>, clase "versalita", fechas, nmeros o palabras compuestas cortas separadas por el guin -, frmulas qumicas, palabras con apstrofo... En todos estos casos la expresin inserta la clase 'nosep' mediante la etiqueta <span>. Ejemplo: P<small>RUEBA</small> Quedando: <span class="nosep">P<small>RUEBA</small> </span> Ejemplo: 11-12-2013 Quedando: <span class="nosep">11-12-2013</span> Ejemplo: <em>e-mail</em> Quedando: <em><span class="nosep">e-mail</span></em> Ejemplo: P. D. Quedando: <span class="nosep">P. D.</span> Ejemplo: K-47 Quedando: <span class="nosep">K-47</span>
NOTA: Previo al empleo de esta expresin es aconsejable realizar un recuento del nmero de coincidencias y decidir al respecto. Coincidencias al inicio de lnea no se dividirn por lo que no tiene por qu emplearse esta solucin. El uso tanto de B.02 como de B.03 queda a criterio del corrector en la idea de hacer un uso de ellas ajustado a lo que se pretende. B.04 (?<!\pL|[p"]>)\K(\p{Lu})<(?:[^/>]+?)>(\S+)\s([^<]+)</s[^g>]+> <span class="nosep">\1<small>\2</small> </span><small>\3</small> Esta expresin localiza frases de ms de una palabra en maysculas sobre las que se ha aplicado la clase 'versalita' o la etiqueta <small>a partir de la segunda letra de la primera palabra, con el fin de aplicarles la clase 'nosep', que est definida en el CSS, que evita el comportamiento errneo de algunos lectores que dividen el texto por la segunda letra que lo forma. Ejemplo: P<span class="versalita">RUEBA MLTIPLE</span> Quedando: <span class="nosep">P<small>RUEBA</small> </span><small>MLTIPLE</small> Ejemplo: P<small>RUEBA MLTIPLE</small> Quedando: <span class="nosep">P<small>RUEBA</small> </span><small>MLTIPLE</small> B.05 [^#-\s:,.;&</>"\x{200B}]{25,} No hay Esta expresin localiza palabras con al menos veinticinco caracteres a las que puede ser necesario aplicar una propiedad que haga que se dividan adecuadamente en uno o varios hipotticos saltos de lnea. El reemplazo que se propone no es tal sino la forma ms compatible y que mejores resultados ha dado en la divisin silbica de la palabra a tratar, que es el uso de la etiqueta ​ La idea es su introduccin manual al final de cada una de las slabas que formen la palabra. Si esta palabra no tiene un sentido literario, la introduccin de la etiqueta puede hacerse en cualquier parte de ella. C. EXPRESIONES PARA AYUDAS A LA MAQUETACIN Este grupo C tiene por finalidad ayudar al editor en tareas propias de la maquetacin de textos que conlleven la sustitucin o bsqueda masiva o la aplicacin de clases especiales definidas en la hoja CSS. Al igual que el grupo B NO REALIZAN correcciones ni detectan errores. N BSQUEDA REEMPLAZO USO C.01 (?i)(?<!m>|\pL)((texto)(s|))(?!</e|\pL|-) <em>\1</em> Esta expresin realiza el enfatizado de todas las palabras que coincidan con texto estn o no en maysculas o minsculas evitando el anidamiento recursivo del enfatizado. Ejemplo: monsieur Quedando: <em>monsieur</em> C.02 <em>(.+?)</em> \1 Esta expresin elimina el enfatizado de todo aquello que se encuentre entre las etiquetas de nfasis, se trate de una sola palabra, de un grupo de ellas o de prrafos completos. El reemplazo debe hacerse de uno en uno en funcin de si se desea o no eliminar cada caso. C.03 (?|(<h.+\n{1,3}\s{1,7}(| <p.+subt.+?">.+\n\s{1,7})))<p> \1 <p class="asangre"> Esta expresin permite modificar la etiqueta <p>del primer prrafo cuando queremos que incluya la clase 'asangre'. Tiene en cuenta la posibilidad de un subttulo previo definido por una clase que empiece al menos por subt Ejemplo: <h3 id="heading_id_2">1</h3> <p>Aqu empieza el prrafo Quedando: <h3 id="heading_id_2">1</h3> <p class="asangre">Aqu empieza el prrafo Ejemplo: <h3>1</h3> <p class=subtit>Aqu va el subttulo <p>Aqu empieza el Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] prrafo Quedando: <h3>1</h3> <p class=subtit>Aqu va el subttulo <p class=asangre>Aqu empieza el prrafo
Si la clase para el subttulo no empieza por subt ser necesario modificar la expresin con el nombre que corresponda. C.04 (?(?=<.+ (asangre|centrado|cita|derecha).+>) | (?:<p class=")\K(?:([^>]+?)(\s)?)? (\bsalto(?:25|inicio)\b)(\s)?(([^>]+?)?)(? =")) \4 asangre\3\2\5\6 Esta expresin permite aadir la clase 'asangre' en los saltos de escena definidos mediante 'salto25' o 'saltoinicio' vayan o no acompaados de otras clases. Ejemplo: <p class="cursiva salto25 negrita">Prrafo Quedando: <p class="salto25 asangre cursiva negrita">Prrafo NOTA: Tras el reemplazo siempre aparece en primer lugar el salto seguido de 'asangre' y el resto de clases que incluyese. C.05 (<p>( |(| )<br />) </p>\n{1,3}\s{1,7})+<p> <p class="salto25 asangre"> Esta expresin sirve para eliminar los saltos de escena que se realizan sin una clase 'salto25' remplazndolos por ella y la clase 'asangre'. Ejemplo: <p> </p> <p>Aqu empieza el prrafo Quedando: <p class="salto25 asangre">Aqu empieza el prrafo Ejemplo: <p><br /></p> <p>Aqu empieza el prrafo Quedando: <p class="salto25 asangre">Aqu empieza el prrafo
NOTA: La expresin tiene en cuenta la posible repeticin de saltos. Si en lugar de un 'salto25' se pretende uno diferente, el reemplazo tendr que modificarse en consecuencia. C.06 (<h.+>)(Captulo [^\s]{1,7}|\pN)\s(.+) (</h.>\n) \1\2\4 <p class="subtit">\3</p> Esta expresin permite modificar la cabecera h de una seccin cuando junto al nmero de captulo aparece el texto de su ttulo, sustituyndola por una clase 'subtit' que debe estar definida en el CSS Ejemplo: <h3 id="heading_id_2">Captulo 1 aqu viene el ttulo</h3> Quedando: <h3 id="heading_id_2">Captulo 1</h3> <p class="subtit">aqu viene el ttulo</p> Ejemplo: <h3>1 aqu viene el ttulo</h3> Quedando: <h3>1</h3> <p class="subtit">aqu viene el ttulo</p>
Si la denominacin de la clase no es 'subtit' hay que escribir en el reemplazo la que se haya definido en el CSS. C.07 (<h.+>.+)<br\s?/>(\n\s{0,10})(.+)(?|| <br\s?/>\n\s{0,10}(\s.+))(</h.>) \1\5\2<p class="subtit">\3\4</p> Esta expresin permite modificar la cabecera h de una seccin cuando se ha usado el salto <br />para dividir el ttulo, sustituyndola por una clase 'subtit' que debe estar definida en el CSS Ejemplo: <h3 id="heading_id_2">1<br /> aqu viene el subttulo</h3> Quedando: <h3 id="heading_id_2">1</h3> <p class="subtit">aqu viene el subttulo</p>
Obviamente si la denominacin de la clase no es 'subtit' hay que escribir en el reemplazo la que se haya definido en el CSS NOTA: La expresin localiza un mximo de dos <br />dentro de la cabecera. C.08 (?(?=<.+title.+>|<.+ttitulo.+>) |(<h[^>]*) (>)(<[^>]+>)?((?:[IVXLC]+\.?\s)?\pL|\PL+? \p{Lu})(<[^>]+>)?([^<>(]+\s|[^<>(]+)([(]? [IVXLCD]+(?!\pL)[)]?)?(<[^>]+>)? (<[^>]+>)?([^\n<>]+)?(<[^>]+>)?(<br /> (\s)*)?(\p{Lu})?([^\n<>]+)?(</h.>)) \1 title="\4\L\6\E\7\L\g{10}\g{13}\E\g{14}\L\g{15}\E"\2\3\4\5\6\7\8\9\g{10}\g{11}\g{12}\g{13}\g{14}\g{15}\g{16} Esta expresin trabaja en captulos que tienen su ttulo en maysculas pero queremos que en el ndice del libro aparezcan en minsculas. Para ello aade la etiqueta title al encabezado h correspondiente manteniendo las maysculas del ttulo Ejemplo: <h1>TTULO DE CAPTULO</h1> Quedando: <h1 title="Ttulo de captulo">TTULO DE CAPTULO </h1> Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32] C.09 (<h.)((?||\s(?!title).+)>)(<[^>]+>)? ([^\pP<>]+)(<[^>]+>)?(|\pP)(</h.>\s* <p[^>]+sub[ct][^>]+>)(.)?(<.+?"?>)? ([^<>\n]+)(<.+?"?>)?([^<>\n]+)?(</p>) \1 title="\4. \U\8\E\L\g{10}\g{12}\E"\2\3\4\5\6\7\8\9\g{10}\g{11}\g{12}\g{13} Esta expresin permite aadir un subttulo de un captulo a la TOC Ejemplo: <h2>Captulo 99: </h2> <p class="subtit">periodo 1939- 1945</p> Quedando: <h2 title="Captulo 99. Periodo 1939-1945">Captulo 99: </h2> <p class="subtit">periodo 1939- 1945</p> C.10 (?<!\p{Ll})(\p{Lu}) ([^\p{Ll}/\pN\n\s"!?.)]{2,}((\s\p{Lu} {1,3}(?!\.))+)?)(?<![.,:;?!)])(?=</[ph].? >|[\s.,:;?!)](?!(?i)x?html|"-|1.1/| [\s\p{Lu}]+?</s)) \1<small>\2</small> Esta expresin sirve para localizar palabras de ms de dos letras en maysculas permitiendo representar en versalitas todas las letras excepto la primera. Cuando la palabra va seguida de otras de menos de 4 letras, quedan incorporadas a la precedente. Ejemplo: FRATERNIDAD Quedando: F<small>RATERNIDAD</small> Ejemplo: GRUTA DE LA HERMITA Quedando: G<small>RUTA DE LA</small> NOTA: Realiza detecciones en los nmeros romanos. C.11 (\p{Lu}[^\p{Ll}/\pN\n"!?)]{4,})(?<! [.,:;?!)])(?=</[ph].?>|[\s.,:;?!)] (?!(?i)x?html|"-|1.1/|\p{Lu}+)) <small>\1</small> Esta expresin localiza frases formadas por palabras en mayscula para aplicarles la etiqueta <small> y representarlas en versalitas. Ejemplo: GRUTA DE LA HERMITA Quedando: <small>GRUTA DE LA HERMITA</small> C.12 (?i)(\PL)\K(texto)(?=\PL) \1reemplazo Esta expresin busca la palabra exacta recogida en texto evitando palabras de mayor longitud que la puedan incluir en su interior. El reemplazo es a criterio del editor. Ejemplo: rama Evitando: trama encaramado C.13 ((?<!>)|[\pN\pL](<.+?"?>)?)[]((<.+?"? >)?[\pN\pL]) \1-\3 Esta expresin, pese a que pueda parecer correctora, se incluye dentro de este grupo para facilitar el cambio de la raya por el signo menos - en aquellos casos en los que dicha raya hace funciones de guin separador. El hecho de situarla en este grupo se debe a facilitar el reemplazo cuando se obtienen mltiples coincidencias detectadas por la expresin 2.02. En esta situacin la mencionada expresin lo considera como un error de la posicin de la raya y facilita su ubicacin correcta. Si las coincidencias son escasas el reemplazo de la raya por el signo menos puede hacerse de forma manual, pero si el error abarca a decenas de coincidencias es preferible emplear la utilidad aqu facilitada. Ejemplo: 19601970 Quedando: 1960-1970 NOTA: El reemplazo masivo de todas las coincidencias puede introducir signos menos en lugares donde s debiera haber una raya como por ejemplo en casos como: Esto es un errordijo l. Otras RegEx detectarn posteriormente esta posible situacin. C.14 ([^>(\p{Lu}.]{4}[^\p{Lu}c])\K\.(?=\s([\(\ []{0,2})(\p{Ll})(?=[^.])) , En ocasiones la expresin 5.01 detecta mltiples errores de palabras en minscula que siguen a un punto. La correccin propuesta es esa expresin consiste en transformar la primera minscula en mayscula. Sin embargo puede darse el caso de que dicho punto no tenga que ser tal sino una coma. Si el nmero de errores de este tipo es escaso su correccin puede hacerse de forma manual, pero si son decenas de erratas la correccin del punto en coma puede realizarse con esta expresin. Ejemplo: Por fin. dijo alguien, Quedando: Por fin, dijo alguien, Bsquedas avanzadas Sigil ePubLibre RegEx 10.0 (Explicacion).html[26/09/2014 6:30:32]