Определяйте названный шаблон
дополнительно задает отображение newpat
= namedPattern(pat
,name
,description
)description
для кусочка.
Используйте 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"
Создайте легкое, чтобы считать шаблон, чтобы совпадать с адресами электронной почты.
Адреса электронной почты следуют за структурой username@domain.TLD, где имя пользователя и область составлены из идентификаторов, разделенных периодами. Создайте шаблон, который совпадает с идентификаторами, состоявшими из любой комбинации алфавитно-цифровых символов и "_"
'characters'. Используйте maskedPattern
назвать этот шаблон identifier
.
identifier = asManyOfPattern(alphanumericsPattern(1) | "_", 1);
identifier = maskedPattern(identifier);
Создайте шаблоны, чтобы совпадать с областями и субдоменами, состоявшими из идентификаторов. Создайте шаблон, который совпадает с TLDs из заданного списка.
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
или массив объектов шаблона.
pattern
| contains
| extract
| maskedPattern
| optionalPattern
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.