Шаблон с заданным именем отображения
Используйте 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.