Обозначить именованный шаблон
дополнительно задает отображение newpat
= namedPattern(pat
,name
,description
)description
для pat.
Использование namedPattern
для назначения шаблона именованному шаблону.
Создайте шаблон, который совпадает с простыми арифметическими выражениями, состоящими из чисел и арифметических операторов.
mathSymbols = asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1)
mathSymbols = pattern
Matching:
asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1)
Создайте шаблон, который соответствует арифметическим выражениям с пробелами между символами с помощью именованного шаблона.
longExpressionPat = asManyOfPattern(mathSymbols + whitespacePattern) + mathSymbols
longExpressionPat = pattern
Matching:
asManyOfPattern(asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1) + whitespacePattern) + asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1)
Это выражение долго и трудно считать. Использование namedPattern
чтобы назначить шаблон именованному шаблону, mathSymbols
.
mathSymbols = namedPattern(mathSymbols); shortExpressionPat = asManyOfPattern(mathSymbols + whitespacePattern) + mathSymbols
shortExpressionPat = pattern
Matching:
asManyOfPattern(mathSymbols + whitespacePattern) + mathSymbols
Using named patterns:
mathSymbols: asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1)
Создайте строку , содержащую некоторые арифметические выражения, а затем извлеките шаблон из текста.
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"
Создайте шаблон из двух именованных шаблонов. Шаблоны имен добавляют контекст к отображению шаблона.
Создайте два шаблона: тот, который совпадает со словами, которые начинаются и заканчиваются буквой D, и тот, который совпадает со словами, которые начинаются и заканчиваются буквой R.
dWordsPat = letterBoundary + caseInsensitivePattern("d" + lettersPattern + "d") + letterBoundary; rWordsPat = letterBoundary + caseInsensitivePattern("r" + lettersPattern + "r") + letterBoundary;
Создайте шаблон с помощью именованных шаблонов, который находит слово, которое начинается и заканчивается D, за которым следует слово, которое начинается и заканчивается R.
dAndRWordsPat = dWordsPat + whitespacePattern + rWordsPat
dAndRWordsPat = pattern
Matching:
letterBoundary + caseInsensitivePattern("d" + lettersPattern + "d") + letterBoundary + whitespacePattern + letterBoundary + caseInsensitivePattern("r" + lettersPattern + "r") + letterBoundary
Этот шаблон трудно считать и не передает много информации о его назначении. Использование namedPattern
для обозначения шаблонов как именованных шаблонов, которые отображают заданные имена и описания вместо выражений шаблонов.
dWordsPat = namedPattern(dWordsPat,"dWords", "Words that start and end with D"); rWordsPat = namedPattern(rWordsPat,"rWords", "Words that start and end with R"); dAndRWordsPat = dWordsPat + whitespacePattern + rWordsPat
dAndRWordsPat = pattern
Matching:
dWords + whitespacePattern + rWords
Using named patterns:
dWords: Words that start and end with D
rWords: Words that start and end with R
Show more details
Создайте строку и извлеките текст, соответствующий шаблону.
txt = "Dad, look at the divided river!";
words = extract(txt,dAndRWordsPat)
words = "divided river"
Создайте простой в чтении шаблон, чтобы соответствовать адресам электронной почты.
Адреса электронной почты соответствуют имени пользователя @ domain.TLD структуры, где имя пользователя и область состоят из идентификаторов, разделенных по периодам. Создайте шаблон, соответствующий идентификаторам, состоящим из любой комбинации алфавитно-цифровых символов и "_"
персонажи. Использование maskedPattern
чтобы назвать этот шаблон identifier
.
identifier = asManyOfPattern(alphanumericsPattern(1) | "_", 1);
identifier = maskedPattern(identifier);
Создайте шаблоны, чтобы соответствовать областям и поддоменам, состоящим из идентификаторов. Создайте шаблон, который совпадает с TLD из заданного списка.
subdomain = asManyOfPattern(identifier + ".") + identifier; domainName = namedPattern(identifier,"domainName"); tld = "com" | "org" | "gov" | "net" | "edu";
Создайте шаблон для соответствия локальной части письма, который совпадает с одним или несколькими идентификаторами, разделенными периодами. Создайте шаблон для соответствия области, TLD и любым потенциальным поддоменам путем объединения ранее определенных шаблонов. Использование namedPattern
чтобы назначить каждый из этих шаблонов именованному шаблону.
username = asManyOfPattern(identifier + ".") + identifier; domain = optionalPattern(namedPattern(subdomain) + ".") + ... domainName + "." + ... namedPattern(tld);
Объедините все шаблоны в одно выражение шаблона. Использование namedPattern
для назначения username
, domain
, и emailPattern
в именованные шаблоны.
emailAddress = namedPattern(username) + "@" + namedPattern(domain);
emailPattern = namedPattern(emailAddress)
emailPattern = pattern
Matching emailAddress:
username + "@" + domain
Using named patterns:
emailAddress : username + "@" + domain
username : asManyOfPattern(identifier + ".") + identifier
domain : optionalPattern(subdomain + ".") + domainName + "." + tld
subdomain : asManyOfPattern(identifier + ".") + identifier
domainName: identifier
tld : "com" | "org" | "gov" | "net" | "edu"
Show all details
Создайте строку, содержащую адрес электронной почты, а затем извлеките шаблон из текста.
txt = "You can reach me by email at John.Smith@department.organization.org";
extract(txt,emailPattern)
ans = "John.Smith@department.organization.org"
Именованные шаблоны позволяют индексировать точку в порядок для доступа к именованным подшаблонам. Используйте индексацию точек, чтобы назначить определенное значение именованному шаблону domain
.
emailPattern.emailAddress.domain = "mathworks.com"
emailPattern = pattern
Matching emailAddress:
username + "@" + domain
Using named patterns:
emailAddress: username + "@" + domain
username : asManyOfPattern(identifier + ".") + identifier
domain : "mathworks.com"
Show all details
pat
- Входной шаблонВходной шаблон, заданный как pattern
, строковые массивы, вектор символов или массив ячеек векторов символов.
Типы данных: char
| string
| pattern
| cell
name
- Имя шаблонаИмя шаблона, заданное как строковый скаляр, вектор символов или массив ячеек из векторов символов.
Типы данных: char
| string
| cell
description
- Описание именованного шаблонаОписание именованного шаблона, заданное как строковый скаляр, вектор символов или массив ячеек из векторов символов. Когда отображается выражение шаблона, именованные шаблоны и их описания отображаются отдельно от выражения полного шаблона.
Типы данных: char
| string
| cell
newpat
- Выходной шаблонВыходной шаблон, возвращенный как pattern
или массив объектов шаблона.
contains
| extract
| maskedPattern
| optionalPattern
| pattern
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.