Импорт утилит

Regexp (TMS)

Контент автоматически переведен с английского языка с помощью Phrase Language AI.

Регулярное выражение (сокращенно regex или regexp) — это последовательность символов, образующих шаблон поиска в основном для использования при сопоставлении шаблонов со строками или совпадении строк. Функции аналогичны функциям поиска и замены операций более сложными и специфичными или в качестве метода исключения определенного контента. Подробное описание стандартных выражений и таблицу используемых символов смотрите в википедии.

Чтобы использовать несколько стандартных выражений одновременно, вставьте символ строки | между ними.

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

Важно

Phrase поддерживает Java regexp, но отвергает сложные регулярные выражения, чтобы защитить систему от перегрузок. Комплексные реджексы — это реджексы с квантователями (кроме собственнических) для групп, содержащих другие квантователи (кроме собственннических).

Общие примеры

Примеры преобразования текста в теги при импорте файлов и использования regexp в редакторе для поиска и замены функций:

Пример

Описание

<[^>]+>

represents <html_tag>

\{[^\}]+\}

представляет {переменную},

\[[^\]]+\]

представляет собой [переменную],

\[\[.+?\]\]

represents [[aa[11]bb]].

\$[^\$]+\$

represents $operator_Name1$.

\d+

представляет собой числа. Also, [0-9]+

[A-Za-z0-9]

означает любой буквенно-цифровой символ.

.+\@.+\..+

email address name@domain.com

\d{4}[-]\d{2}[-]\d{2}

дата 2018-08-01

\s$

пробел в конце сегмента

^\s

пробел в начале сегмента

\s\s

двойной пробел

^\d

цифра в начале сегмента

\w+\s\s\w+

двойной пробел между словами

\s\n

новая строка, которой предшествует любой символ пробела

\S\n

новая строка, которой предшествует любой не пробельный символ

<[^>]+>|\$[^=]+=

преобразует переменные php и html-код ($svariable['name'] =)

^\s*\'[^:]+:

преобразует ключ поля Javascript с добавленными пробелами в начале строки ( 'ключ' :)

\{\{[^\}]+\}\}|\'[^']+\'

не переводит содержимое {{text here}} '{{text here}}' и преобразует его в теги

Импорт TXT

Примеры регулярных выражений при импорте определенного текста:

  1. ## Сообщение об ошибке ##1## Количество должно быть выше 0. ###Я##

    Для импорта текста между ##1## и ###Z# ,используйте стандартное выражение: (?<=##1##)

  2. Сообщение об ошибке ("Количество должно быть выше 0.")

    Для импорта текста между (" и ") , используйте стандартное выражение: (?<=\(").*(?="\)

  3. 'errorMessage' = 'Число должно быть выше 0'.

    Для импорта текста после знака = и между ' и' , используйте стандартное выражение: (?<=\=').*(?=')

  4. errorMessage = «Это должно быть переведено»

    Для импорта текста после знака = и между 'и' используйте стандартное выражение: (?<=\= ").*(?=")

  5. msgstr ("Номер должен быть выше 0.")

    Для импорта строк msgstr в одноязычных файлах PO с использованием фильтра TXT используйте стандартное выражение: (?<=msgstr ").*(?=")

  6. # Примечание: Это примечание

    Чтобы исключить строки, начинающиеся с # , используйте стандартное выражение: (^[^#].*)

  7. значения '126', 'DCeT', 'Text (en)'

    Для импорта только текста в кавычках и с (en), например, Text (en)' используйте regexp: (?<=')[^']*\(en\)(?=')

Импорт JSON

Пример структуры JSON:

{
"список": {
        "id": "1",
        «значение»: «текст 1 для перевода».
        },
"текст": {
        "id": "2",
        «значение»: «текст 2 для перевода».
        },
"меню": {
        "id": "3",
        «значение»: «текст 3 для перевода».
         },"массив": ["синий","зеленый"],"массивы": [{ "цвет": "синий", "название": "BLUE"
         }, { "цвет": "зеленый", "название": "GREEN" } ]}
  • для импорта каждого значения независимо от уровня используйте: (^|.*/)значение

  • для импорта только одного значения из списка используйте: список/значение

  • для импорта значения из списка и/или меню используйте оператор | (ИЛИ): list/value|menu/value

  • для импорта только первого экземпляра значения из меню используйте: меню\[1\]/значение

  • для импорта содержимого массива JSON после определенного ключа используйте: (^|.*/)массив\[.*\]

  • для импорта содержимого определенного массива объектов используйте: (^|.*/)массивы\[.*\].*

Импорт YAML

Пример мухи YAML:

название: A
текст: перевести A
категории:
  название: B
  текст: перевести B
категории:
  название: C
  text: translation C
категории:
  контент:
      название: D
      текст: перевести D

regexp для импорта:

  • только 'translate A' : text

  • только «перевести С»: категории\[2\]/текст

  • только 'translate D': categories\[\d+\]/content[\1\]/text

  • all text: text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text

Правила сегментации

Okapi, Java и Unicode используются для правил сегментации в файлах .SRX.

Использование стандартных выражений в файлах .SRX является сложным процессом, и перед попыткой работы с ними рекомендуется иметь базовые знания о регулярном использовании выражений.

Правила Nobreak (аббревиатуры и т. д.) и Break (конец предложения с точкой и т. д.) есть в файлах .SRX.

Пример

Описание

[\p{C}]

Невидимый контрольный символ.

[\p{Z}]

Пробел

[\p{Lu}]

Прописная буква, имеющая вариант нижнего регистра.

[\p{N}]

Любые цифровые символы.

\Q... \E

Начало и конец ценового предложения - (\QApprox.\E). Используется для сокращений.

\t

Табулятор

\n

Newline

\u2029

Разделитель пунктов

\u200B

Раздел нулевой ширины

\u3002

Идеографический полный стоп

\ufe52

Небольшая полная остановка

\uff0e

Полная ширина полной остановки

\uff61

Идеографическая полширины полная остановка

\ufe56

Небольшой вопросительный знак

\uff1f

Знак вопроса полной ширины

\u203c

Двойной восклицательный знак

\u2048

Восклицательный знак вопроса

\u2762

Сильный восклицательный знак орнамент

\u2763

Тяжелый восклицательный знак сердца орнамент

\ufe57

Небольшой восклицательный знак

\uff01

Восклицательный знак полной ширины

Общие пользовательские проверки качества

Проверка качества

Исходный стандарт

Целевой стандарт

Дополнительные цифры в переводе

\d

\d

Порядок тегов (непарный)

^.*\{1\}.*\{2\}.*$

^.*\{1\}.*\{2\}.*$

Порядок тегов (непарный)

^.*\{1\}.*\{2\}.*\{3\}.*$

^.*\{1\}.*\{2\}.*\{3\}.*$

Порядок тегов (непарный)

^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$

^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$

Порядок тегов (парный)

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*$

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*$

Порядок тегов (парный)

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*\{3\&gt;.*\&lt;3\}.*$

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*\{3\&gt;.*\&lt;3\}.*$

Пространства перед тегами

\s(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

\s(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

Пробелы после тегов

(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})\s

(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})\s

Нет пробела перед тегами

\S(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

\S(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

Отсутствуют квадратные скобки

[^\[\]]*\[[^\[\]]*\][^\[\]]*

[^\[\]]*\[[^\[\]]*\][^\[\]]*

Отсутствуют круглые скобки

[^\(\)]*\([^\(\)]*\)[^\(\)]*

[^\(\)]*\([^\(\)]*\)[^\(\)]*

Была ли эта статья полезной?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.