+1 голос
176 просмотров

Следующее регулярное выражение позволит вам сравнить два проекта с разметкой божественного имени \nd …\nd* в Paratext Find, используя Remove From List, чтобы увидеть, где количество вхождений в стихах различается. Настройки должны быть без каких-либо ограничений. Это не будет работать, если отмечено Match Only in Verse Text.

regex:(?<=\\v\s\S+\s)((?!\\(v|m?s|nd)).)*(\\nd [^\\]*?\\nd\*)){1,1}((?!\\(v|m?s|nd|c)).)*(?=\\(v|s|c)|\Z)

Это регулярное выражение позволяет находить стихи с заданным количеством диапазонов \nd в тексте:

  • {1,1} ровно один
  • {1} ровно один (то же, что и выше)
  • {2,} два или более
  • {0,0} Нисколько

Оно не находит разметку \nd в заголовках разделов и не находит разметку \+nd

Проблемы

  • Поскольку оно не находит разметку \+nd, оно не находит \+nd в обычном тексте (редко).
  • Оно не находит \nd в частичном стихе, который следует за заголовком раздела (редко).

Следующее регулярное выражение находит txt в диапазонах \+nd …\+nd* в обычном тексте и сносках: .

regex:(?<=\\v\s\S+\s)(((?!\\(v|m?s|\+nd)).)*(\\\+?nd [^\\]*?\\\+?nd\*)){1,1}((?!\\(v|m?s|\+nd)).)*(?=\\(v|m?s)|\Z)

Проблемы

  • Поскольку оно находит разметку \+nd, оно находит \+nd в сносках (часто).

Если мы хотим использовать это для сравнения английского перевода, использующего разметку \nd, с переводом, использующим уникальное немаркированное слово для YHWH, мы можем добавить это слово в поиск. Для французского языка мы будем искать 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)

Поскольку Eternel также встречается в сносках, мы хотим пропустить поиск текста в сносках. Следующая схема позволит вам пропустить текст (такой как диапазон сноски) при сопоставлении:

schema:(?<=<start>)(((?!<selector>).)*((<skipSpan>((?!<selector>).)*)*<requiredSpan>)){Min,Max}((?!<selector>).)*(<skipSpan>((?!<selector>).)*)*(?=<end>|\Z)

Для <selector> см.: Regex Examples: Matching Whole Lines of Text That Satisfy Certain Requirements

Если ваше условие состоит в том, что строка не должна содержать что-то, используйте отрицательный просмотр вперед. ^((?!regexp).)*$ сопоставляет полную строку, которая не соответствует regexp.

Давайте применим это к пропуску текста в сносках. Нам необходимо сопоставить диапазоны \nd и \+nd и 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

Полное регулярное выражение:
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)

Переведено машиной с языка English
Paratext от (1,8тыс. очков)
снова показан | 176 просмотров

Пожалуйста, войдите или зарегистрируйтесь, чтобы ответить на этот вопрос.

Похожие вопросы

0 голосов
1 ответ 475 просмотров
A couple of days ago user 1 reported to me that in one PT8 project, the text direction somehow changed to ... are managed by two different organizations. How could this happen?
anon895417 129 задал вопрос дек 4, 2017
0 голосов
8 ответов 2,3тыс. просмотров
We have a user who has inserted a lot of \pn and some \nd inside of footnotes. We now know we need those to be ... the search to inside of a single footnote? Thank you, MSEAIT/LT
MSEAIT_LT 478 задал вопрос авг 20, 2018
0 голосов
0 ответов 175 просмотров
To compare the versions of a project in which there were changes: Click in the window of the project to make it the ... how-do-i-compare-a-word-or-phrase-in-different-projects/19)
[Expert]
anon421222
735
задал вопрос фев 23, 2017
0 голосов
2 ответов 373 просмотров
Маркеры \pn и \nd в заголовках приводят к тому, что текст не получает всех остальных атрибутов символов, ... как ошибки. Как следует использовать такие маркеры в заголовках?
anon015155 153 задал вопрос сен 26, 2018
0 голосов
2 ответов 737 просмотров
Мне нужно узнать, какой процент каждой книги уже набран. Достаточно просто подсчитать, сколько стихов в каждой книге ... Спасибо за любую помощь в этом вопросе. Джон Нистром
john_nystrom 312 задал вопрос авг 21, 2024
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
And over all these virtues put on love, which binds them all together in perfect unity.
Colossians 3:14
3,054 вопросов
6,014 ответов
5,677 комментариев
2,033 пользователей