namedPattern
構文
説明
例
名前付きパターンを作成し、複雑なパターンを整理
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)
いくつかの演算式を含む string を作成した後、テキストからパターンを抽出します。
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"
複雑なパターンに名前と説明を指定
2 つの名前付きパターンから 1 つのパターンを作成します。パターンに名前を付けることで、パターンの表示にコンテキストが加わります。
次の 2 つのパターンを作成します。1 つは、先頭と末尾が文字 D である単語に一致させます。もう 1 つは、先頭と末尾が文字 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
Use details to show more information
string を作成し、パターンに一致するテキストを抽出します。
txt = "Dad, look at the divided river!";
words = extract(txt,dAndRWordsPat)
words = "divided river"
メール アドレスに一致
メール アドレスに一致する、可読性の高いパターンを作成します。
メール アドレスは、username@domain.TLD の構造になっています。ここで、username と domain は、ピリオドで区切られた識別子で構成されます。英数字および "_"
文字の任意の組み合わせから成る識別子に一致するパターンを作成します。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";
メールのローカル部分 (ピリオドで区切られた 1 つ以上の識別子) に一致するパターンを作成します。これまで定義したパターンを組み合わせて、ドメイン、TLD、および可能な任意のサブドメインに一致するパターンを作成します。namedPattern
を使用して、これらの各パターンを名前付きパターンに割り当てます。
username = asManyOfPattern(identifier + ".") + identifier; domain = optionalPattern(namedPattern(subdomain) + ".") + ... domainName + "." + ... namedPattern(tld);
これらすべてのパターンを組み合わせて、1 つのパターン式にします。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"
Use details to show more information
メール アドレスを 1 つ含む string を作成し、テキストからパターンを抽出します。
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"
Use details to show more information
入力引数
pat
— 入力パターン
pattern 配列 | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
入力パターン。pattern
、string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。
データ型: char
| string
| pattern
| cell
name
— パターン名
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
パターン名。string スカラー、文字ベクトル、または文字ベクトルの cell 配列として指定します。
データ型: char
| string
| cell
description
— 名前付きパターンの説明
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
名前付きパターンの説明。string スカラー、文字ベクトル、または文字ベクトルの cell 配列として指定します。パターン式が表示されるとき、名前付きパターンとその説明が、完全なパターン式とは別に表示されます。
データ型: char
| string
| cell
出力引数
拡張機能
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
バージョン履歴
R2020b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)