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 = 2×1 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
Show more details
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"
Show all details
メール アドレスを 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"
Show all details
入力引数
入力パターン。pattern、string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。
データ型: char | string | pattern | cell
パターン名。string スカラー、文字ベクトル、または文字ベクトルの cell 配列として指定します。
データ型: char | string | cell
名前付きパターンの説明。string スカラー、文字ベクトル、または文字ベクトルの cell 配列として指定します。パターン式が表示されるとき、名前付きパターンとその説明が、完全なパターン式とは別に表示されます。
データ型: char | string | cell
拡張機能
スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。
バージョン履歴
R2020b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)