Образец с указанным отображаемым именем
Использовать maskedPattern отображение переменной вместо сложного выражения массива.
Построение шаблона, соответствующего простым арифметическим выражениям, состоящим из чисел и арифметических операторов.
mathSymbols = asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1)mathSymbols = pattern
Matching:
asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1)
Создание шаблона, соответствующего арифметическим выражениям с пробелами между символами с помощью arithmeticPat.
longExpressionPat = asManyOfPattern(mathSymbols + whitespacePattern) + mathSymbols
longExpressionPat = pattern
Matching:
asManyOfPattern(asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1) + whitespacePattern) + asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1)
Отображаемое выражение шаблона является длинным и трудно читаемым. Использовать maskedPattern для отображения имени переменной, mathSymbols, вместо выражения шаблона.
mathSymbols = maskedPattern(mathSymbols); shortExpressionPat = asManyOfPattern(mathSymbols + whitespacePattern) + mathSymbols
shortExpressionPat = pattern
Matching:
asManyOfPattern(mathSymbols + whitespacePattern) + mathSymbols
Show all details
Создайте строку, содержащую некоторые арифметические выражения, а затем извлеките образец из текста.
txt = "What is the answer to 1 + 1? Oh, I know! 1 + 1 = 2!";
arithmetic = extract(txt,shortExpressionPat)arithmetic = 2x1 string
"1 + 1"
"1 + 1 = 2"
Использовать maskedPattern отображение указанного имени для сложного выражения шаблона.
Построить два шаблона: один, который совпадает со словами, которые начинаются и заканчиваются буквой D, и тот, который совпадает со словами, которые начинаются и заканчиваются буквой R.
dWordsPat = letterBoundary + caseInsensitivePattern("d" + lettersPattern + "d") + letterBoundary; rWordsPat = letterBoundary + caseInsensitivePattern("r" + lettersPattern + "r") + letterBoundary;
Использовать maskedPattern отображение указанного имени вместо выражений массива. Создайте шаблон, используя маскированные шаблоны, которые находят слова, начинающиеся и оканчивающиеся на D, за которыми следует слово, начинающееся и оканчивающееся на R.
dWordsPat = maskedPattern(dWordsPat,"Words that start and end with D"); rWordsPat = maskedPattern(rWordsPat,"Words that start and end with R"); dAndRWordsPat = dWordsPat + whitespacePattern + rWordsPat
dAndRWordsPat = pattern
Matching:
Words that start and end with D + whitespacePattern + Words that start and end with R
Show all details
Создайте строку, а затем извлеките образец из текста.
txt = "Dad, look at the divided river!";
words = extract(txt,dAndRWordsPat)words = "divided river"
Создание пользовательских функций шаблона и использование maskedPattern для скрытия деталей.
Создание функции atLeastOneOfPattern который принимает входной шаблон pat и создает образец, newPat, который соответствует одному или нескольким последовательным экземплярам pat. Использовать maskedPattern скрытие подробных данных массива при его отображении.
function newPat = atLeastOneOfPattern(pat) arguments pat pattern end newPat = asManyOfPattern(pat,1); newPat = maskedPattern(newPat,compose("atLeastOneOfPattern(%s)",pat)); end
Звонить atLeastOneOfPattern со входом "a" и отображение newPat.
newPat = atLeastOneOfPattern("a")newPat =
pattern
Matching:
atLeastOneOfPattern("a")
Show all details
Создание шаблона hexDigit который соответствует числовым символам от 0 до 9 и буквам от a-f с characterListPattern. С тех пор characterListPattern чувствителен к регистру, использование caseInsensitivePattern чтобы hexDigit соответствует независимо от регистра символов.
hexDigit = characterListPattern('0','9') | characterListPattern('a','f'); hexDigit = caseInsensitivePattern(hexDigit); hexDigit = maskedPattern(hexDigit)
hexDigit = pattern
Matching:
hexDigit
Show all details
hexDigit соответствует отдельным цифрам шестнадцатеричных чисел. Сопоставление полных шестнадцатеричных чисел путем построения шаблона, соответствующего тексту литерала "0x" за которым следует одно или несколько вхождений hexDigit.
hexNumberPattern = "0x" + asManyOfPattern(hexDigit, 1)hexNumberPattern = pattern
Matching:
"0x" + asManyOfPattern(hexDigit,1)
Show all details
Этот шаблон используется для извлечения шестнадцатеричных чисел из строки.
hexNumbers = extract("The answer is 0x2A", hexNumberPattern)hexNumbers = "0x2A"
pat - Шаблон вводаВходной шаблон, заданный как pattern, строковый массив, символьный вектор или массив ячеек символьных векторов.
Типы данных: char | string | pattern | cell
mask - Имя шаблона с маскировкойМаскированное имя шаблона, указанное как строковый скаляр, символьный вектор или массив ячеек символьных векторов.
Типы данных: char | string | cell
newpat - Шаблон выводаВыходной шаблон, возвращаемый как pattern или массив объектов массива.
contains | extract | namedPattern | optionalPattern | pattern
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.