La siguiente expresión regular le permitirá comparar dos proyectos con la marca del nombre divino \nd …\nd* en Buscar de Paratext y usando Quitar de la lista (Remove From List), para ver dónde difiere el número de instancias en un versículo. La configuración debe estar sin restricciones. No funcionará si Solo coincidir en el texto del versículo (Match Only in Verse Text) está marcado.
regex:(?<=\\v\s\S+\s)((?!\\(v|m?s|nd)).)*(\\nd [^\\]*?\\nd\*)){1,1}((?!\\(v|m?s|nd|c)).)*(?=\\(v|s|c)|\Z)
Esta expresión regular le permite encontrar versículos con un número especificado de tramos \nd en el texto:
- {1,1} uno y solo uno
- {1} exactamente uno (igual que arriba)
- {2,} dos o más
- {0,0} Ninguno
No encuentra la marca \nd en los encabezados de sección ni encontrará la marca \+nd
Problemas
- Dado que no encontrará la marca \+nd, no encontrará \+nd en el texto regular (raro).
- No encontrará \nd en un versículo parcial que siga a un encabezado de sección (raro).
La siguiente expresión regular encontrará txt en tramos \+nd …\+nd* en el texto regular y las notas al pie: .
regex:(?<=\\v\s\S+\s)(((?!\\(v|m?s|\+nd)).)*(\\\+?nd [^\\]*?\\\+?nd\*)){1,1}((?!\\(v|m?s|\+nd)).)*(?=\\(v|m?s)|\Z)
Problemas
- Dado que encontrará la marca \+nd, encontrará \+nd en las notas al pie (común).
Si queremos usar esto para comparar una traducción al inglés que usa la marca \nd con una traducción que usa una palabra única sin marca para YHWH, podemos agregar la palabra a la búsqueda. Para el francés, buscaremos Eternel
regex:(?<=\\v\s\S+\s)(((?!\\(v|m?s|nd)|Eternel).)*(\\\+?nd [^\\]*?\\\+?nd\*|Eternel)){1,1}((?!\\(v|m?s|nd)|Eternel).)*(?=\\v|m?s)|\Z)
Dado que Eternel también aparece en las notas al pie, queremos omitir la búsqueda del texto en las notas al pie. El siguiente esquema le permitirá omitir el texto (como un tramo de nota al pie) al hacer coincidir:
schema:(?<=<start>)(((?!<selector>).)*((<skipSpan>((?!<selector>).)*)*<requiredSpan>)){Min,Max}((?!<selector>).)*(<skipSpan>((?!<selector>).)*)*(?=<end>|\Z)
Para <selector> ver: Ejemplos de expresiones regulares: Coincidencia de líneas completas de texto que satisfacen ciertos requisitos
Si su condición es que una línea no debe contener algo, use la aserción negativa. ^((?!regexp).)*$ coincide con una línea completa que no coincide con regexp.
Aplicaremos esto para omitir el texto en las notas al pie. Debemos hacer coincidir los tramos \nd y \+nd y Eternel:
<start> \\v\s\S+\s ; Start at verse
<end> \\(v|m?s) ; End at verse or section heading
<end>|\Z \\(v|m?s)|\Z ; For final context add \Z to select end of Chapter
<requiredStart> \\\+?nd|Eternel ; \nd markup optionally embedded and "Eternel"
<requiredSpan> (\\\+?nd [^\\]*?\\\+?nd\*|Eternel) ; The entire \nd phrase or "Eternel"
<skipStart> \\f\s ; Beginning of a footnote
<skipSpan> (\\f\s((?!\\f\*).)*\\f\*) ; The entire footnote
<selector> <end>|<skipStart>|<requiredStart> ; Combine all of the selection restrictions
=> \\(v|m?s)|\\f\s|\\\+?ndEternel ; which simplifies to
=> \\(v|m?s|f\s|\+?nd)|Eternel
Expresión regular completa:
regex:(?<=\\v\s\S+\s)(((?!\\(v|m?s|f\s|\+?nd)|Eternel).)*(((\\f\s((?!\\f\*).)*\\f\*)((?!\\(v|m?s|f\s|\+?nd)|Eternel).)*)*(\\\+?nd[^\\]*?\\\+?nd\*|Eternel))){1,1}((?!\\(v|m?s|f\s|\+?nd)|Eternel).)*((\\f\s([^\\]|\\(?!f\*))*\\f\*)((?!\\(v|m?s|f\s|\+?nd)|Eternel).)*)*(?=(\\(v|m?s))|\Z)