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

Иногда я обнаруживал пробел после собственного имени при использовании маркера USFM pn.

Например: \pn Иисус \pn* . Вы можете увидеть пробел после имени Иисуса. Как я могу найти собственные имена, за которыми следует пробел?

Когда я ищу: \pn* , я получаю около 7000 совпадений. Когда я ищу \pn* с пробелом перед ним, я получаю около 1000 совпадений. Однако найденные элементы не имеют пробела после имени. Это меня очень сбивает с толку. Есть ли у вас какие-либо предложения, как искать это? Можно было бы подумать, что это должен быть простой поиск, но, похоже, это не так.

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

3 Ответов

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

Лучший способ найти это — с помощью регулярных выражений. В окне поиска Paratext вставьте это:
regex:\s\\pn\*
Вы должны «экранировать» и \, и * с помощью \.
У меня есть общее решение, которое я использую во всех проектах, а именно никогда не допускать пробел перед тегами конца строки. Вы можете найти все возможные случаи, используя это в окне поиска Paratext:
regex:\s\\\+?\w+\*
Вы можете исправить их с помощью этого поиска и замены, используя RegEx Pal:
(\s)(\u200F?\\\+?([^xf]\w*|[xf]\w+)\*)
\2\1
Обратите внимание, что это регулярное выражение исключает пробелы в конце сносок и перекрестных ссылок. Оно также учитывает маркер Unicode для направления справа налево (u+200F). Исправление лишних пробелов в тексте RTL особенно затруднено без этого инструмента.

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

На самом деле, самый быстрый способ найти \b перед \pn — это с помощью инвентаря маркеров (Marker Inventory). Отметьте «показывать предыдущий маркер» и отсортируйте по \b или \pn. Это очень удобный инструмент. Не забудьте щелкнуть правой кнопкой мыши и скопировать ссылки в окно списка.
Благословений, Shegnada

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

Я думаю, здесь есть некоторая путаница в отношении формулировки «пробел».
По моему пониманию, @Clear7419 спрашивал о «Поиске пробела перед \pn*», а не о «Поиске пустой строки».

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

@CrazyRocky Вы правы, я просто искал пробел, а не пустую строку. Спасибо за ваше полезное регулярное выражение. Можете ли вы объяснить, что вы имеете в виду, когда говорите об экранировании и \, и * с помощью \? Я вставил выражение, но оно нашло примеры без пробелов.

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

Из учебника по регулярным выражениям — Литеральные символы и специальные символы:

Поскольку мы хотим делать больше, чем просто искать буквальную часть текста, нам нужно зарезервировать определенные символы для специального использования. По крайней мере, 12 символов имеют специальное значение:

обратный слэш \, символ ^, знак доллара $, точка ., вертикальная черта или символ пайпа |, вопросительный знак ?, звездочка *, знак плюс +, открывающая скобка (, закрывающая скобка ), открывающая квадратная скобка [ и открывающая фигурная скобка {. Эти специальные символы часто называют «метасимволами». Большинство из них являются ошибками, если используются по отдельности.

Если вы хотите использовать любой из этих символов как литерал в регулярном выражении, вам нужно экранировать их обратным слэшем. Если вы хотите сопоставить 1+1=2, правильное регулярное выражение — 1\+1=2. В противном случае знак плюс имеет специальное значение.

И в PT нам часто нужен \ в регулярных выражениях, потому что он так фундаментален для USFM. Поэтому, чтобы найти \p в регулярном выражении, вы вводите \\p.

(Полезно узнать об экранировании, так как даже в этом инструменте форума определенные символы не будут отображаться, если вы не экранируете их или не используете функцию «предварительно отформатированный текст» через значок </>.)

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

Я полагаю, вы имеете в виду этот код:

Мое обобщенное выражение ищет встроенные маркеры, которые особенно часто встречаются в сносках. Например, валидный USFM требует, чтобы в сносках маркер \pn ...\pn* был отмечен как встроенный с помощью символа плюс после обратного слэша:
\f + \fr 8:5 \ft I want to put \+pn Jesus \+pn* in a footnote.\f*
В этом примере есть пробел перед и после \+pn*. Код RegexPal выше найдет этот пробел и переместит его после \+pn*. Если в результате получится два пробела подряд, Paratext автоматически объединит их в один.
Как отмечает @Tim, знак плюс + должен быть экранирован, но в этих поисках он также является необязательным, поэтому код для этого — \+?.
Надеюсь, это отвечает на ваш вопрос.

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

Я сделал это старым добрым способом, ища каждую последнюю букву + пробел + маркер USFM. Это сработало.

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

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

Можно составить разные формулы. Одна из них отвечает на ваш вопрос, и вы можете использовать её непосредственно в поисковом движке Paratext:
regex:\p{L}\s\\pn\*
где:
regex: — команда для использования регулярных выражений.
\p{L} будет искать любую букву (в данном случае конец слова).
\s будет искать пробел.
\\pn\* будет искать \pn*. Его нужно писать именно так, чтобы Regex распознал его.
Таким образом, у вас будет список всех мест, где за буквой следует пробел и \pn*.

Если вы хотите, чтобы поиск извлекал всё слово перед пробелом, вам просто нужно добавить знак +, как здесь: regex:\p{L}+\s\\pn\*

Переведено с помощью DeepL Translate: самый точный переводчик в мире

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

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

0 голосов
5 ответов 525 просмотров
Recently I noticed that when I attempt to type in the search menu box I get a blank box that says Searching ... I lose the search function. Anyone else encountering this issue?
Chris Guthrie 128 задал вопрос апр 28, 2020
0 голосов
3 ответов 446 просмотров
При указании ссылок на Писание, охватывающих несколько глав, команда Komba предпочитает оформлять их следующим образом: ... тире без пробелов слишком длинное и выглядит некрасиво.
anon142050 118 задал вопрос апр 17, 2019
0 голосов
1 ответ 489 просмотров
I'm finally at the point where I need to ask: is there any way to fix the issue of having to add a space ... selected in Checking > Quotation Rules', but something's not right
Paul 642 задал вопрос май 11, 2017
0 голосов
6 ответов 755 просмотров
Привет Возможно ли иметь общий пустой документ для заметок? Нашим командам нужно место, где можно записывать различные решения, которые мы принимаем в процессе перевода. Спасибо.
anon084515 116 задал вопрос янв 18, 2021
0 голосов
2 ответов 50 просмотров
В одном проекте классическая сноска выглядит так: \f + \fr cc.v \fq keyword (mostly singular, if noun ... надеюсь избежать изобретения велосипеда, который, возможно, уже доступен.
Tim 934 задал вопрос май 29
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
And let us consider how we may spur one another on toward love and good deeds, not giving up meeting together, as some are in the habit of doing, but encouraging one another—and all the more as you see the Day approaching.
Hebrews 10:24-25
3,048 вопросов
6,007 ответов
5,672 комментариев
2,027 пользователей