0 голосов
536 просмотров

Здравствуйте,

Я как раз проверял неправильное использование заглавных букв. В частности, я знаю, что переводчики иногда случайно пишут «LORD» вместо \nd Lord\nd*. Но меня удивило, что Run Basic Checks…>Capitalization не выявляет случаи использования всех заглавных букв.

Это регулярное выражение находит любые две соседние заглавные буквы, но также возвращает много лишнего. Например, сокращения названий книг, коды языков и имена файлов изображений.
regex:\w*[A-ZĆÄÏÜ]\w*[A-ZĆÄÏÜ]\w
(для тех, кто не знаком с регулярными выражениями, [A-ZĆÄÏÜ] означает любой символ от A до Z или любой из специальных символов Ć, Ä, Ï и Ü — только в верхнем регистре)

Я искал места, где можно изменить правила использования заглавных букв, но смог найти только место, где можно одобрять или отклонять слова со смешанным регистром (в которых слова, написанные ЗАГЛАВНЫМИ БУКВАМИ, не отображаются).

Я также поискал в файлах справки Paratext и на этом форуме, но не смог найти никакой информации.

Существует ли сейчас простой способ найти слова, написанные ЗАГЛАВНЫМИ БУКВАМИ? Если нет, можно ли добавить такую функцию? Возможно, это могло бы отображаться в результатах поиска смешанного регистра, хотя технически это все заглавные буквы. Или, может быть, лучше выделить для них отдельную категорию.

Большое спасибо!

Переведено машиной с языка English
Paratext от (379 очков)
снова показан | 536 просмотров

6 Ответов

0 голосов
Лучший ответ

Я люблю использовать регулярные выражения, но они всегда заставляют меня кружиться в голове. Вот как мне удалось их разобрать, для тех, кто заинтересован. Я использовал подчеркивания в качестве пробелов, чтобы все было выровнено.

Разбор регулярного выражения, которое находит слова, написанные ЗАГЛАВНЫМИ БУКВАМИ, и которые не предшествуются определенными маркерами.
(?<!\\(id|h|toc|mt|fig).*)\b\p{Lu}+\b

  1. Искать границу слова
    __________________________\b_________
  2. Искать любую заглавную букву в начале слова
    __________________________\b\p{Lu}___
  3. Искать одну или несколько заглавных букв, начиная с начала слова
    __________________________\b\p{Lu}+__
  4. Искать слово любой длины, написанное полностью заглавными буквами
    __________________________\b\p{Lu}+\b
  5. После нахождения слова, написанного заглавными буквами, проверить, было ли перед ним необязательное группирование
    (?_______________________)\b\p{Lu}+\b
  6. После нахождения слова, написанного заглавными буквами, убедиться, что перед ним не было обратного слэша
    (?<!\\___________________)\b\p{Lu}+\b
  7. После нахождения слова, написанного заглавными буквами, убедиться, что перед ним не было \id или \h или \toc или \mt или \fig
    (?<!\\(id|h|toc|mt|fig)__)\b\p{Lu}+\b
  8. После нахождения слова, написанного заглавными буквами, убедиться, что где-то ранее в строке не было \id или \h или \toc или \mt или \fig
    (?<!\\(id|h|toc|mt|fig).*)\b\p{Lu}+\b

Лично я думаю, что уберу |mt, потому что я хочу проверять заглавные буквы также в названиях книг.

Мне приходит в голову, что будет, если рисунок вставлен в начало или в середину стиха? Последующие слова, написанные ЗАГЛАВНЫМИ БУКВАМИ, не будут обнаружены этим регулярным выражением.

(\\fig(.*?)\\fig\*) захватывает весь тег рисунка, но это не помогло. Вот что я придумал:
(?<!\\(id|h|toc).*)\b\p{Lu}+\b.*?(?!\\fig\*)

Вот разбор:

  1. После нахождения слова, написанного заглавными буквами, убедиться, что где-то ранее в строке не было \id или \h или \toc.
    (?<!\\(id|h|toc).*)\b\p{Lu}+\b______________
  2. После нахождения слова, написанного заглавными буквами, убедиться, что где-то ранее в строке не было \id или \h или \toc. Затем искать вперед любое количество символов.
    (?<!\\(id|h|toc).*)\b\p{Lu}+\b.*?___________
  3. После нахождения слова, написанного заглавными буквами, убедиться, что где-то ранее в строке не было \id или \h или \toc. Затем искать вперед любое количество символов, чтобы убедиться, что \fig* не найдено где-либо после этого в строке.
    (?<!\\(id|h|toc).*)\b\p{Lu}+\b.*?(?!\\fig\*)

По какой-то причине это регулярное выражение не поймало «\mt1 GÉNESIS». Есть идеи, почему?

Переведено машиной с языка English
от (379 очков)
снова показан

\fig никогда не должен находиться внутри стиха или абзаца, потому что он разобьет текст и форматирование самыми разными плохими способами в зависимости от вашей программы вывода. Его нужно размещать в конце абзаца. Конечно, мы запускаем регулярные выражения в самых разных случаях, когда текст не особенно чист, но я хотел упомянуть это ограничение.

Переведено машиной с языка English
0 голосов

Привет, anon094061.
Вы можете ввести следующее регулярное выражение в поисковую систему Paratext, чтобы увидеть слова, написанные полностью заглавными буквами: regex:\b\p{Lu}+\b

где:
«regex:» — команда, сообщающая Paratext, что это регулярное выражение.
«\b» — граница слова
«\p{Lu}» указывает на заглавные буквы
«+» указывает на одно или несколько повторений вышеуказанной формулы.
То есть, оно будет искать одно или несколько последовательных заглавных букв, имеющих на концах разделитель слов, такой как пробел или запятая.


Действительно, список «Mixed capitalization inventory…» учитывает необычные сочетания, поэтому здесь не перечисляются слова, написанные полностью заглавными буквами.

Переведено машиной с языка English
от (973 очков)
снова показан
0 голосов

Это немного сложнее, но вы также можете использовать:
regex:(?<!\\(id|h|toc|mt|fig).*)\b\p{Lu}+\b

это для того, чтобы игнорировать содержимое определенных маркеров, которые мы уже знаем, что будут написаны заглавными буквами, таких как «id» или «mt».
Вы можете добавить другие маркеры для исключения, добавив «|» и имя маркера в больших скобках.

Переведено машиной с языка English
от (973 очков)
снова показан

Вау, это действительно здорово! Большое спасибо, anon689242 — именно то, что мне нужно.

Я думаю, что эта проверка станет отличным дополнением к разделу «Assignments and Progress».

Переведено машиной с языка English
0 голосов

Ах, я только что понял, что мое решение \fig \fig* отфильтровывает результаты ЗАГЛАВНЫХ БУКВ, происходящие в стихе до рисунка. Так что, нужно что-то более продвинутое. Я буду исследовать, как заставить регулярное выражение игнорировать группу.

Переведено машиной с языка English
от (379 очков)
снова показан
+1 голос

Я обнаружил, что https://regex101.com/ полезен для анализа регулярных выражений, хотя я понимаю, что подключение к Интернету может быть проблемой для некоторых. Я не уверен, какой «вариант» регулярных выражений соответствует тому, что использует Paratext.

Переведено машиной с языка English
от (296 очков)

Согласно моим заметкам, Paratext 9, RegEx Pal, PrintDraft Changes.txt и DBLchanges.txt все используют
C# (NET 2.0-4.8.1 & .NET Core 1.0-3.0)

Я был бы рад, если бы это было подтверждено.

Переведено машиной с языка English
0 голосов

Действительно хорошие наблюдения. Спасибо @Shegnada и @anon806807.

Я только что подумал, что, возможно, нам стоит использовать это регулярное выражение, чтобы проверять также текст alt рисунков. Я думаю, что проблема только в имени файла изображения, так почему бы нам просто не отфильтровать его? Что-то вроде
\b.*\.(TIF|GIF|JPG|JPEG)\b?

Может быть, с отрицательным просмотром вперед? Что-то вроде этого?

(?:\b.*\.(TIF(F)|GIF|JP(E)G|PNG|EPS|BMP|WEBP)\b)

Оно должно игнорировать и что-то вроде CN01628B.tif.

Я не сижу за компьютером, пока пишу это, но надеюсь скоро протестировать.

Переведено машиной с языка English
от (379 очков)
снова показан

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

0 голосов
3 ответов 228 просмотров
(Paul Unger writes) I found a topic in the PT Supporters e-mail list that held promise for how to do this. It ... track. Does anyone know what I need to put for small caps?
аноним задал вопрос апр 10, 2015
0 голосов
2 ответов 309 просмотров
Команда, которой я помогаю, хотела бы, чтобы имя Бога отображалось полностью заглавными буквами (не мелкими ... содержимое \nd \nd* отображалось полностью заглавными буквами?
Ruth Mathys 153 задал вопрос окт 25, 2023
0 голосов
6 ответов 810 просмотров
Здравствуйте, у меня есть вопрос о массовом помечении слов как неверных в словаре. Мы находимся на этапе финальной ... это теперь запрос на возможность сделать это! Спасибо, Lizzie
anon859055 130 задал вопрос июл 14, 2021
0 голосов
6 ответов 450 просмотров
Я хочу, чтобы стиль \nd отображался наклонными прописными (small caps). При экспорте из PT в RTF \nd ... полностью отсутствует. Что мне делать, чтобы получить наклонные прописные?
anon054969 123 задал вопрос фев 20, 2021
0 голосов
0 ответов 162 просмотров
The KJVA uses \sc markup for signs and inscriptions like \sc King of the Jews\sc*. \sc stands ... Scripture Typesetting trainer & Regular Expression Specialist Dallas TX aDllas TX
anon467281 571 задал вопрос мар 15, 2019
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
For we were all baptized by one Spirit so as to form one body—whether Jews or Gentiles, slave or free—and we were all given the one Spirit to drink.
1 Corinthians 12:13
3,048 вопросов
6,007 ответов
5,672 комментариев
2,027 пользователей