стандартное выражение (сокращенно регулярное выражение или стандартное выражение (regexp)) представляет собой последовательность символы, которые образуют шаблон поиска в основном для использования при сопоставлении шаблонов с строки или строка-сопоставлением. Функциональность аналогична операциям поиска и замены с большей сложностью и спецификой. Смотрите статью в Википедии для подробного описания стандартное выражение (regexp) и таблицы используемых символы.
На использовать несколько регулярных выражений одновременно, вставить символ конвейера |
между ними.
Регулярные выражения можно использовать в полях фильтрации, поиска и замены в настольном редакторе Автоматизированный перевод (CAT), в полях исходник и перевод функции Поиск для контент, для функции, Преобразовать в теги в
Важный
Phrase поддерживает Java стандартное выражение (regexp), но будет отклонить сложные регулярные выражения для защиты системы от перегрузки. Сложные регулярные выражения — это выражения с кванторами (кроме притяжательных) в группах, которые содержат другие кванторы (кроме притяжательных).
Примеры преобразования текста в теги при импорте файлов и использовании стандартное выражение (regexp) в редакторе для функций поиска и замены:
Пример |
Описание |
---|---|
<[^>]+> |
represents <html_tag> |
\{[^\}]+\} |
представляет {переменную}, |
\[[^\]]+\] |
представляет [переменная], |
\[\[.+?\]\] |
представляет [[aa[11]bb]]. |
\$[^\$]+\$ |
представляет $operator_Name1$. |
\d+ |
представляет числа. Кроме того, [0-9]+ |
[A-Za-z0-9] |
представляет любой буквенно-цифровой символ. |
.+\@.+\..+ |
адрес электронной почты name@domain.com |
\d{4}[-]\d{2}[-]\d{2} |
Дата: 2018-08-01 |
\s$ |
пробел в конце сегмент |
^\с |
пробел в начале сегмент |
\s\s |
Двойная пробел |
^\d |
цифра в начале сегмент |
\w+\s\s\w+ |
двойной пробел между слова |
\s\n |
Символ новой строки, которому предшествует любой пробел символ |
\S\n |
Символ новой строки, которому предшествует любой символ, не являющийся пробел |
<[^>]+>|\$[^=]+= |
Преобразует PHP переменные и HTML-код ($svariable['name'] =) |
^\s*\'[^:]+: |
Преобразует ключ поля JavaScript с добавлено пробелами в начале строки ( 'key' :) |
\{\{[^\}]+\}\}|\'[^']+\' |
не переводит {{text here}} '{{text here}} контент и преобразует его в теги |
Примеры регулярных выражений при импорте определенный текста:
-
## ErrorMessage ##1## Число должно быть больше 0. ##Z##
На импорт текст между ##1## и ##Z## используйте стандартное выражение (regexp): (?<=##1## ).*(?= ##Z## ,)
-
ErrorMessage ("Число должно быть больше 0.")
На импорт тексте между (" и ") , используйте стандартное выражение (regexp):
(?<=\(").*(?="\))
'errorMessage' = 'Число должно быть больше 0.'
На импорт тексте после знака = и между ' и ' используйте стандартное выражение (regexp): (?<=\= ').*(?= ' , )
-
errorMessage = "это должно быть переведено"
На импорт тексте после знака = и между 'and'используйте стандартное выражение (regexp):
(?<=\= ").*(?=")
-
msgstr («Число должно быть больше 0.»)
На импорт msgstr строки в одноязычных файлах PO с помощью фильтра TXT, используйте стандартное выражение (regexp):
(?<=msgstr ").*(?=")
# Примечание: Это примечание
На исключить строки, начинающиеся с #, используйте стандартное выражение (regexp): (^[^# , ].*)
значения '126', 'DCeT', 'Текст (en)'
На импорт только текст в кавычках и с (en), например, Текст (en)' использовать стандартное выражение (regexp): (?<=')[^']*\(en\)(?='),
Пример структуры JSON:
{
"list": {
"id": "1",
"value": "текст 1 для перевода".
},
"text": {
"id": "2",
"value": "текст 2 для перевода".
},
"menu": {
"id": "3",
"value": "текст 3 для перевода".
},"array": ["blue","green"],"arrays": [{ "color": "blue", "title": «СИНИЙ»
}, { "color": "зеленый", "title": "ЗЕЛЕНЫЙ" } ]}
-
Для импорта каждого значения независимо от уровня используйте: (^|. */)значение
-
Чтобы импортировать только одно значение из списка, используйте: list/value
-
Для импорта значения из списка и/или меню используйте кнопку | (ИЛИ): list/value|menu/value
-
Чтобы импортировать только первый экземпляр значения из меню, используйте: menu\[1\]/value
-
для импорта контент массива JSON после определенного ключа используйте: (^|. */)array\[.*\]
-
Чтобы импорт контент массива определенный объектов, используйте: (^|. */)массивы\[.*\].*
Пример мухи YAML:
титул: A
текст: перевести A
Категории:
титул: B
текст: перевести B
Категории:
титул: C
текст: перевести C
Категории:
контент:
титул: D
текст: перевести D
стандартное выражение (regexp) для импорта:
-
только 'translate A' :
текст
-
только 'translate C':
categories\[2\]/text
-
только 'translate D':
categories\[\d+\]/content[\1\]/text
Весь текст: text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text
Okapi, Java и Unicode используются для правил сегментации в . SRX-файлы.
Использование стандартное выражение (regexp) в . Файлы SRX сложны, и прежде чем пытаться работа с ними стандартное выражение использовать базовые знания.
Правила Nobreak (аббревиатуры и т. д.) и правила разрыва (конец предложения с точкой и т. д.) находятся в . SRX-файлы.
Пример
Описание
[\p{C}]
Невидимый управляющий персонаж.
[\p{Z}]
Пробелы
[\p{Lu}]
Прописная буква со строчным вариантом.
[\p{N}]
Любой вид числового символа.
\Q ... \E
Начало и конец цитаты - (\QApprox.\E). Это используется для аббревиатур.
\t
Табулятор
\n
Новая строка
\u2029
Разделитель абзацев
\u200B
Пространство нулевой ширины
\u3002
Идеографическая точка
\ufe52
Маленькая точка
\uff0e
Точка во всю ширину
\uff61
Идеографическая точка половинной ширины
\ufe56
Маленький вопросительный знак
\uff1f
Вопросительный знак во всю ширину
\u203c
Двойной восклицательный знак
\u2048
Вопросительный знак
\u2762
Тяжелый орнамент восклицательного знака
\u2763
Тяжелое сердце восклицательный знак орнамент
\ufe57
Маленький восклицательный знак
\uff01
Восклицательный знак во всю ширину
Обеспечение качества (QA) проверка
Источник: Regexp
Целевое регулярное выражение
Дополнительные номера в перевод
\d
\d
Теги порядок (непарные)
^.*\{1\}.*\{2\}.*$
^.*\{1\}.*\{2\}.*$
Теги порядок (непарные)
^.*\{1\}.*\{2\}.*\{3\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*$
Теги порядок (непарные)
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
Теги порядок (в паре)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
Теги порядок (в паре)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<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}\})
Пропущено квадратных скобках
[^\[\]]*\[[^\[\]]*\][^\[\]]*
[^\[\]]*\[[^\[\]]*\][^\[\]]*
Пропущено круглые кронштейны
[^\(\)]*\([^\(\)]*\)[^\(\)]*
[^\(\)]*\([^\(\)]*\)[^\(\)]*