Main Content

regexpi

正規表現 (大文字小文字を区別しない) の一致

説明

startIndex = regexpi(str,expression) は、大文字小文字にかかわらず、正規表現で指定した文字パターンと一致する str の各部分文字列の開始インデックスを返します。一致要素がない場合、startIndex は空配列になります。

[startIndex,endIndex] = regexpi(str,expression) は、一致するすべての開始インデックスと終了インデックスを返します。

out = regexpi(str,expression,outkey) は、outkey で指定された出力を返します。たとえば、outkey'match' の場合、regexpi は開始インデックスではなく、式と一致する部分文字列を返します。

[out1,...,outN] = regexpi(str,expression,outkey1,...,outkeyN) は、複数の出力キーワードで指定された出力を、指定された順番に返します。たとえば、'match','tokens' を指定した場合、regexpi は式全体と一致する部分文字列と、式の一部と一致するトークンを返します。

___ = regexpi(___,option1,...,optionM) は、指定されたオプション フラグを使って検索を修正します。たとえば、'matchcase' を指定すると、大文字と小文字を区別する一致が実行されます。任意の入力を含めたり、前述の構文から任意の出力を要求することができます。

___ = regexpi(___,'forceCellOutput') は、各出力引数をスカラー cell として返します。セルには前述の構文の出力として表される数値配列または部分文字列が含まれます。任意の入力を含めたり、前述の構文から任意の出力を要求することができます。

すべて折りたたむ

c で始まり、t で終わり、その間に少なくとも 1 文字以上の母音を含む単語を検索します。

str = 'bat cat can car COAT court cut ct CAT-scan';
expression = 'c[aeiou]+t';
startIndex = regexpi(str,expression)
startIndex = 1×4

     5    17    28    35

startIndex の値は、正規表現と一致する各単語の最初の文字のインデックスを示しています。

正規表現 'c[aeiou]+t' は次のパターンを指定します。

  • c が最初の文字でなければなりません。

  • c の後には、大かっこ内のいずれかの文字 ([aeiou]) が続かなければなりません。

  • 大かっこ付きのパターンは、+ 演算子の指定により、1 回以上発生しなければなりません。

  • t が最後の文字でなければならず、大かっこで囲まれたパターンと t の間に文字が存在してはなりません。

式の全部または一部で、大文字と小文字を区別して一致を検索します。

既定では、regexpi は大文字小文字を区別しない一致を実行します。

str = 'A character vector with UPPERCASE and lowercase text.';
expression = '\w*case';
matchStr = regexpi(str,expression,'match')
matchStr = 1x2 cell
    {'UPPERCASE'}    {'lowercase'}

関数 regexpregexpi と同じ構文を使用して、大文字小文字を区別する一致を実行します。

matchWithRegexp = regexp(str,expression,'match')
matchWithRegexp = 1x1 cell array
    {'lowercase'}

regexp に対して大文字小文字を区別する一致を無効にするには、'ignorecase' オプションを使用します。

matchWithIgnorecase = regexp(str,expression,'match','ignorecase')
matchWithIgnorecase = 1x2 cell
    {'UPPERCASE'}    {'lowercase'}

複数の式の場合は、(?i) および (?-i) の検索フラグを使って、選択した表現の大文字小文字を区別する一致の有効と無効を切り替えます。

expression = {'(?-i)\w*case';...
              '(?i)\w*case'};
matchStr = regexp(str,expression,'match');
celldisp(matchStr)
 
matchStr{1}{1} =
 
lowercase
 
 
matchStr{2}{1} =
 
UPPERCASE
 
 
matchStr{2}{2} =
 
lowercase
 

入力引数

すべて折りたたむ

入力テキスト。文字ベクトル、文字ベクトルの cell 配列または string 配列として指定します。cell 配列の各文字ベクトルまたは string 配列の各 string は、任意の長さで任意の文字を含めることができます。

strexpression が string 配列または cell 配列の場合、これらの次元は同じでなければなりません。

データ型: string | char | cell

正規表現。文字ベクトル、文字ベクトルの cell 配列または string 配列として指定します。各式には、文字、メタ文字、演算子、トークンおよび str と一致するパターンを指定するフラグを含めることができます。

次の表では、正規表現の要素を説明します。

メタ文字

メタ文字は、文字、文字範囲、桁および空白文字を表します。メタ文字を使用して文字の汎用パターンを構築します。

メタ文字

説明

.

空白を含む任意の単一文字

'..ain' は、'ain' で終わる 5 つの連続する文字のシーケンスと一致します。

[c1c2c3]

大かっこ内の任意の文字。次の文字は文字どおり扱われます。$ | . * + ? および - (範囲を示すために使用する場合を除く)。

'[rp.]ain''rain''pain' または '.ain' と一致します。

[^c1c2c3]

大かっこ内を除く任意の文字。次の文字は文字どおり扱われます。$ | . * + ? および - (範囲を示すために使用する場合を除く)。

'[^*rp]ain''ain' で終わる 4 文字のシーケンスと一致します。ただし、'rain''pain' および '*ain' は除きます。たとえば、'gain''lain' または 'vain' と一致します。

[c1-c2]

c1c2 の範囲の任意の文字

'[A-G]' は、AG の範囲の 1 文字と一致します。

\w

アルファベット、数字またはアンダースコア文字。英語の文字セットでは、\w[a-zA-Z_0-9] と等価です。

'\w*' は、アルファベット、数字またはアンダースコアの任意の文字のまとまりで構成される単語を識別します。

\W

アルファベット、数字またはアンダースコア以外の任意の文字。英語の文字セットでは、\W[^a-zA-Z_0-9] と等価です。

'\W*' は、アルファベット、数字またはアンダースコア以外の任意の文字のまとまりで構成される単語を識別します。

\s

任意の空白文字。[ \f\n\r\t\v] と等価です。

'\w*n\s' は後ろに空白文字が続く、文字 n で終わる単語と一致します。

\S

任意の空白文字以外の文字。[^ \f\n\r\t\v] と等価です。

'\d\S' は後ろに空白文字以外の文字が続く数字と一致します。

\d

任意の数字。[0-9] と等価です。

'\d*' は任意の数の連続する数字と一致します。

\D

任意の数字以外の文字。[^0-9] と等価です。

'\w*\D\>' は数字で終わらない単語と一致します。

\oN または \o{N}

8 進数値 N の文字

'\o{40}' は 8 進数 40 で定義される空白文字と一致します。

\xN または \x{N}

16 進数値 N の文字

'\x2C' は 16 進数 2C で定義されるコンマ文字と一致します。

文字表現

演算子

説明

\a

アラーム (ビープ)

\b

バックスペース

\f

フォーム フィード

\n

改行

\r

キャリッジ リターン

\t

水平タブ

\v

垂直タブ

\char

文字どおり一致させる正規表現で特殊な意味をもつ任意の文字 (単一のバックスラッシュに一致させるには \\ を使用するなど)

量指定子

量指定子は、一致するテキスト内でパターンが発生しなければならない回数を指定します。

量指定子

表現の出現回数

expr*

0 回以上の繰り返し。

'\w*' は任意の長さの単語と一致します。

expr?

0 回または 1 回。

'\w*(\.m)?' はオプションで拡張子 .m で終了する単語と一致します。

expr+

1 回以上の繰り返し。

'<img src="\w+\.gif">' はファイル名に 1 文字以上の文字が含まれている場合、<img> HTML タグと一致します。

expr{m,n}

m 回以上 n 回以下の繰り返し。

{0,1}? と等価です。

'\S{4,8}' は 4 ~ 8 文字の空白文字以外の文字と一致します。

expr{m,}

m 回以上の繰り返し。

{0,} および {1,} は、* および + とそれぞれ等価です。

'<a href="\w{1,}\.html">' はファイル名に 1 文字以上の文字が含まれている場合、<a> HTML タグと一致します。

expr{n}

正確に n 回の繰り返し。

{n,n} と等価です。

'\d{4}' は 4 桁の数と一致します。

量指定子は次の表に示すように、3 つのモードで表示できます。q は前の表の任意の量指定子を表します。

モード

説明

exprq

最長一致表現。できるだけ多くの文字と一致します。

たとえば、テキスト '<tr><td><p>text</p></td>' の場合、式 '</?t.*>'<tr から /td> までのすべての文字と一致します。

'<tr><td><p>text</p></td>'

exprq?

最短一致表現。できるだけ少ない文字と一致します。

たとえば、テキスト '<tr><td><p>text</p></td>' の場合、式 '</?t.*?>' は最初に閉じ山かっこ (>) が出現した時点で、各一致が終了します。

'<tr>' '<td>' '</td>'

exprq+

独占的表現。できる限り多く一致しますが、テキスト部分の再スキャンは実行しません。

たとえば、テキスト '<tr><td><p>text</p></td>' の場合、式 '</?t.*+>' は一致を返しません。これは .* の使用により閉じ山かっこがキャプチャされ、再スキャンされないためです。

グループ化演算子

グループ化演算子を使用すると、トークンのキャプチャ、1 つの演算子の複数の要素への適用または特定グループ内のバックトラッキングを無効にできます。

グループ化演算子

説明

(expr)

式の要素をグループ化し、トークンをキャプチャします。

'Joh?n\s(\w*)' は、名が John または Jon である人の姓が含まれているトークンをキャプチャします。

(?:expr)

グループ化はしますが、トークンはキャプチャしません。

'(?:[aeiou][^aeiou]){2}''anon' のように、1 つの母音の後に 1 つの子音が続く、2 つの連続パターンと一致します。

グループ化を使用しない場合、'[aeiou][^aeiou]{2}' は 1 つの母音の後に 2 つの子音が続くパターンと一致します。

(?>expr)

アトミックにグループ化します。一致を検索するためにグループ内のバックトラッキングを実行せず、トークンをキャプチャしません。

'A(?>.*)Z''AtoZ' と一致しませんが、'A(?:.*)Z' は一致します。アトミック グループを使用すると、.* を使用することで Z がキャプチャされ、再スキャンは実行されません。

(expr1|expr2)

expr1 または式 expr2 に一致します。

expr1 と一致する場合、expr2 は無視されます。

左小かっこの後に ?: または ?> を入れると、トークンを抑制したりアトミックにグループ化したりできます。

'(let|tel)\w+' は、let または tel を含むがそれらで終わらない単語と一致します。

アンカー

式内のアンカーは、入力テキストまたは単語の最初または最後と一致します。

アンカー

一致対象

^expr

入力テキストの最初。

'^M\w*' はテキストの最初が M で始まる単語と一致します。

expr$

入力テキストの最後。

'\w*m$' はテキストの最後が m で終わる単語と一致します。

\<expr

単語の最初。

'\<n\w*'n で始まる任意の単語と一致します。

expr\>

単語の最後。

'\w*e\>'e で終わる任意の単語と一致します。

前後参照アサーション

前後参照アサーションは、目的の一致の直前または直後のパターン (一致の一部ではない) を検索します。

ポインターは現在の位置のままで、test 式に対応する文字はキャプチャも破棄もされません。このため、前方参照アサーションは、オーバーラップしている文字グループと一致することがあります。

前後参照アサーション

説明

expr(?=test)

test と一致する文字を前方参照します。

'\w*(?=ing)' は、入力テキスト 'Flying, not falling.''Fly''fall' など、後ろに ing が続く語句と一致します。

expr(?!test)

test と一致しない文字を前方参照します。

'i(?!ng)' は、後ろに ng が続かない文字 i のインスタンスと一致します。

(?<=test)expr

test と一致する文字を後方参照します。

'(?<=re)\w*' は、入力テキスト 'renew, reuse, recycle''new''use''cycle' など、're' の後に続く語句と一致します。

(?<!test)expr

test と一致しない文字を後方参照します。

'(?<!\d)(\d)(?!\d)' は 1 桁の数字 (前後に他の桁が続かない数字) と一致します。

式の "前に" 前方アサーションを指定する場合、演算は論理 AND と等価になります。

演算

説明

(?=test)expr

testexpr の両方に一致します。

'(?=[a-z])[^aeiou]' は子音と一致します。

(?!test)expr

expr には一致し、test には一致しません。

'(?![aeiou])[a-z]' は子音と一致します。

論理演算子と条件演算子

論理演算子と条件演算子を使用すると、特定の条件の状態をテストし、その結果を使用して次に一致するパターン (ある場合) を決定できます。これらの演算子は論理 OR および if または if/else 条件をサポートしています。

条件はトークンの場合もあれば、前方参照演算子または (?@cmd) という形式の動的表現の場合もあります。動的表現は、論理値または数値を返さなければなりません。

条件演算子

説明

expr1|expr2

expr1 または式 expr2 に一致します。

expr1 と一致する場合、expr2 は無視されます。

'(let|tel)\w+'let または tel で始まる単語と一致します。

(?(cond)expr)

条件 condtrue の場合、expr に一致します。

Windows® システムで実行する場合、'(?(?@ispc)[A-Z]:\\)'C:\ などのドライブ名と一致します。

(?(cond)expr1|expr2)

条件 condtrue の場合、expr1 に一致します。それ以外の場合は expr2 に一致します。

'Mr(s?)\..*?(?(1)her|his) \w*' は、テキストが Mrs で始まる場合は her を含むテキストに一致し、テキストが Mr で始まる場合は his を含むテキストに一致します。

トークン演算子

トークンは正規表現の一部をかっこで囲んで定義した、一致テキストの一部です。テキスト内のシーケンスによってトークンを参照することも (順序トークン)、コードの保守を簡単にしたり、出力を読み取りやすくしたりするために、トークンに名前を割り当てることもできます。

順序トークン演算子

説明

(expr)

かっこで囲まれた式と一致する文字をトークンでキャプチャします。

'Joh?n\s(\w*)' は、名が John または Jon である人の姓が含まれているトークンをキャプチャします。

\N

N 番目のトークンと一致します。

'<(\w+).*>.*</\1>' はテキスト '<title>Some text</title>''title' など、HTML タグのトークンをキャプチャします。

(?(N)expr1|expr2)

N 番目のトークンが見つかった場合は expr1 に一致します。それ以外の場合は expr2 に一致します。

'Mr(s?)\..*?(?(1)her|his) \w*' は、テキストが Mrs で始まる場合は her を含むテキストに一致し、テキストが Mr で始まる場合は his を含むテキストに一致します。

名前付きトークン演算子

説明

(?<name>expr)

かっこで囲まれた式と一致する文字を名前付きトークンでキャプチャします。

'(?<month>\d+)-(?<day>\d+)-(?<yr>\d+)' は、mm-dd-yy の形式の入力日付に含まれる月、日および年の名前付きトークンを作成します。

\k<name>

name で参照されるトークンに一致します。

'<(?<tag>\w+).*>.*</\k<tag>>' はテキスト '<title>Some text</title>''title' など、HTML タグのトークンをキャプチャします。

(?(name)expr1|expr2)

名前付きトークンが見つかった場合は expr1 に一致します。それ以外の場合は expr2 に一致します。

'Mr(?<sex>s?)\..*?(?(sex)her|his) \w*' は、テキストが Mrs で始まる場合は her を含むテキストに一致し、テキストが Mr で始まる場合は his を含むテキストに一致します。

メモ

式に入れ子にされたかっこがある場合、MATLAB® は一番外側のかっこのペアに対応するトークンをキャプチャします。たとえば '(and(y|rew))' という検索パターンの場合、MATLAB は 'andrew' に対するトークンを作成しますが、'y''rew' に対するトークンは作成しません。

動的正規表現

動的表現を使用すると、MATLAB コマンドまたは正規表現を実行して一致するテキストを特定できます。

動的表現を囲む小かっこでは、キャプチャするグループを "作成しません"。

演算子

説明

(??expr)

expr を解析して、一致表現内に結果の語句を含めます。

解析時、expr は完全かつ有効な正規表現に対応しなければなりません。バックスラッシュのエスケープ文字 (\) を使用する動的表現では、バックスラッシュを 2 つ使用しなければなりません。1 つは expr の初期解析に使用し、もう 1 つは完全な一致に使用します。

'^(\d+)((??\\w{$1}))' は一致の先頭の 1 桁を読み取ることによって、一致する文字数を決定します。動的表現は、結果の一致がトークンにキャプチャされるように、2 番目のかっこのセットによって囲まれています。たとえば、'5XXXXX' に一致すると、'5''XXXXX' のトークンがキャプチャされます。

(??@cmd)

cmd で表される MATLAB コマンドを実行し、返された出力を一致表現に含めます。

'(.{2,}).?(??@fliplr($1))''abba' など 4 文字以上の回文を検索します。

(?@cmd)

cmd で表される MATLAB コマンドを実行しますが、返された出力をすべて破棄します(正規表現の診断に有効)。

'\w*?(\w)(?@disp($1))\1\w*' は重複する文字 (pp など) を含む単語と一致し、中間結果を表示します。

動的表現内では、次の演算子を使用して置換テキストを定義します。

置換演算子

説明

$& または $0

入力テキストの現在の一致部分

$`

入力テキストの現在の一致の前にある部分

$'

入力テキストの現在の一致の後にある部分 ($'' を使用して $' を表現)

$N

N 番目のトークン

$<name>

名前付きトークン

${cmd}

MATLAB で cmd コマンドを実行したときに返される出力

コメント

文字

説明

(?#comment)

正規表現にコメントを挿入します。コメントのテキストは、入力の検索時に無視されます。

'(?# Initial digit)\<\d\w+' にはコメントが含まれ、数字で始まる単語に一致します。

検索フラグ

検索フラグを使用して、一致する式に対する動作を変更します。式内での検索フラグの使用に対する代替案は、option 入力引数を渡すことです。

フラグ

説明

(?-i)

大文字と小文字を区別します。regexpregexprep の既定です。

(?i)

大文字と小文字を区別しません。regexpi の既定です。

(?s)

パターン内のドット (.) を任意の文字と一致させます (既定)。

(?-s)

パターン内のドットを改行文字以外の任意の文字と一致させます。

(?-m)

テキストの始めと終わりで ^ メタ文字と $ メタ文字を一致させます (既定)。

(?m)

行の始めと終わりで ^$ メタ文字を一致させます。

(?-x)

検索時に空白文字とコメントを含めます (既定)。

(?x)

検索時に空白文字とコメントを無視します。空白文字と # 文字に一致させるには、'\ ''\#' を使用します。

フラグによって修正される式は、かっこの後に

(?i)\w*

のように表示されるか、かっこの中に表示でき、次のようにコロン (:) を使ってフラグから切り離すことができます。

(?i:\w*)

後の構文を使うと、より長い式の一部に対する動作を変更できます。

データ型: char | cell | string

どの出力を返すかを示すキーワード。次の文字ベクトルのいずれかとして指定します。

出力キーワード

戻り値

'start' (既定)

すべての一致の開始インデックス (startIndex)

'end'

すべての一致の終了インデックス (endIndex)

'tokenExtents'

すべてのトークンの開始インデックスと終了インデックス

'match'

expression のパターンと一致する各部分文字列のテキスト

'tokens'

str 内のキャプチャされた各トークンのテキスト

'names'

各名前付きトークンの名前とテキスト

'split'

str 内の一致しない部分文字列のテキスト

データ型: char | string

検索オプション。文字ベクトルとして指定します。オプションはペアになっています。既定の動作に対応するオプションが 1 つ、既定をオーバーライドできるオプションが 1 つです。ペアからオプションを 1 つだけ指定します。オプションの順番は任意です。

既定

オーバーライド

説明

'all'

'once'

式をできるだけ多く一致させる (既定) か、1 回しか一致させないかを指定します。

'nowarnings'

'warnings'

警告の非表示 (既定) または表示を指定します。

'ignorecase'

'matchcase'

大文字小文字を無視する (既定) か、大文字小文字を有効にするかを指定します。

'noemptymatch'

'emptymatch'

長さがゼロの一致を無視する (既定) か、含めるかを指定します。

'dotall'

'dotexceptnewline'

ドットをなんらかの文字に一致させる (既定) か、改行 (\n) を除きすべてと一致させるかを指定します。

'stringanchors'

'lineanchors'

^ メタ文字と $ メタ文字を文字ベクトルの始めと終わりに適用する (既定) か、行の始めと終わりに適用するかを指定します。改行文字 (\n) は、行の末尾を指定します。行の先頭は最初の文字、または改行文字の直後の任意の文字として指定されます。

'literalspacing'

'freespacing'

検索時に空白文字とコメントを含める (既定) か無視するかを指定します。freespacing の使用時、空白文字と # 文字に一致させるには '\ ''\#' を使用します。

データ型: char

出力引数

すべて折りたたむ

各一致の開始インデックス。次のように行ベクトルまたは cell 配列として返されます。

  • strexpression が両方とも文字ベクトルまたは string スカラーの場合、出力は行ベクトルになります。一致がない場合は空の配列になります。

  • str または expression の一方が文字ベクトルの cell 配列または string 配列で、他方が文字ベクトルまたは string スカラーの場合、出力は行ベクトルの cell 配列になります。出力 cell 配列の次元は、入力配列の次元と同じです。

  • strexpression が両方とも cell 配列または string 配列の場合、これらの次元は同じでなければなりません。出力は同じ次元の cell 配列になります。

各一致の終了インデックス。次のように行ベクトルまたは cell 配列として返されます。

  • strexpression が両方とも文字ベクトルまたは string スカラーの場合、出力は行ベクトルになります。一致がない場合は空の配列になります。

  • str または expression の一方が文字ベクトルの cell 配列または string 配列で、他方が文字ベクトルまたは string スカラーの場合、出力は行ベクトルの cell 配列になります。出力 cell 配列の次元は、入力配列の次元と同じです。

  • strexpression が両方とも cell 配列または string 配列の場合、これらの次元は同じでなければなりません。出力は同じ次元の cell 配列になります。

一致に関する情報。数値、セル、string または構造体配列として返されます。出力の情報は、次のように outkey に対して指定した値によって決まります。

出力キーワード

出力の説明

出力のタイプと次元

'start'

一致の開始インデックス

'start''end' の両方:

  • strexpression が両方とも文字ベクトルまたは string スカラーの場合、出力は行ベクトルになります。一致がない場合は空の配列になります。

  • str または expression の一方が文字ベクトルの cell 配列または string 配列で、他方が文字ベクトルまたは string スカラーの場合、出力は行ベクトルの cell 配列になります。出力 cell 配列の次元は、入力配列の次元と同じです。

  • strexpression が両方とも cell 配列または string 配列の場合、これらの次元は同じでなければなりません。出力は同じ次元の cell 配列になります。

'end'

一致の終了インデックス

'tokenExtents'

すべてのトークンの開始インデックスと終了インデックス

既定ですべての一致が返される場合:

  • strexpression が両方とも文字ベクトルまたは string スカラーの場合、出力は 1 行 n 列の cell 配列になります。ここで n は一致の数です。各セルには、m 行 2 列のインデックスの数値配列が含まれています。ここで m は一致内のトークンの数です。

  • str または expression のどちらかが文字ベクトルの cell 配列または string 配列の場合、出力は入力配列と同じ次元の cell 配列になります。各セルには 1 行 n 列の cell 配列が含まれています。ここで内側の各セルには m 行 2 列の数値配列が含まれています。

  • strexpression が両方とも cell 配列または string 配列の場合、これらの次元は同じでなければなりません。出力は同じ次元の cell 配列になります。

1 つの一致しか返さない 'once' オプションを指定した場合、出力は m 行 2 列の数値配列か、str または expression のどちらか一方または両方と同じ次元の cell 配列のいずれかになります。

特定のインデックス N のトークンが予想されるにもかかわらず、トークンが見つからない場合は、MATLAB はそのトークンの範囲 [N,N-1] を返します。

'match'

expression のパターンと一致する各部分文字列のテキスト

既定ですべての一致が返される場合:

  • strexpression が両方とも文字ベクトルまたは string スカラーの場合、出力は 1 行 n 列の配列になります。ここで n は一致の数です。

    str が文字ベクトルの場合、出力は文字ベクトルの cell 配列になります。str が string スカラーの場合、出力は string 配列になります。

  • str または expression の一方が文字ベクトルの cell 配列または string 配列で、他方が文字ベクトルまたは string スカラーの場合、出力は配列である引数と同じ次元をもつ cell 配列になります。

    str が文字ベクトルまたは文字ベクトルの cell 配列の場合、出力は文字ベクトルの cell 配列になります。str が string 配列の場合、出力は各セルに string 配列が含まれる cell 配列になります。

  • strexpression が両方とも cell 配列または string 配列の場合、これらの次元は同じでなければなりません。出力は同じ次元の cell 配列になります。

    str が文字ベクトルからなる cell 配列の場合、出力も同様です。str が string 配列の場合、出力は各セルに string 配列が含まれる cell 配列になります。

'once' オプションを指定して 1 つの一致のみを返す場合、出力は文字ベクトル、string 配列または str および expression と同じ次元の cell 配列になります。

'tokens'

str 内のキャプチャされた各トークンのテキスト

既定ですべての一致が返される場合:

  • strexpression が両方とも文字ベクトルまたは string スカラーの場合、出力は 1 行 n 列の cell 配列になります。ここで n は一致の数です。各セルには、1 行 m 列の一致の cell 配列が含まれます。ここで m は一致内のトークンの数です。

    str が文字ベクトルの場合、出力は文字ベクトルの cell 配列になります。str が string 配列の場合、出力は各セルに string 配列が含まれる cell 配列になります。

  • str または expression の一方が文字ベクトルの cell 配列または string 配列で、他方が文字ベクトルまたは string スカラーの場合、出力は配列である引数と同じ次元をもつ cell 配列になります。各セルには 1 行 n 列の cell 配列が含まれます。ここで内側の各セルには 1 行 m 列の配列が含まれます。

    str が文字ベクトルまたは文字ベクトルの cell 配列の場合、内側の各セルには 1 行 m 列の cell 配列が含まれます。str が string 配列の場合、内側の各セルには 1 行 m 列の string 配列が含まれます。

  • strexpression が両方とも cell 配列または string 配列の場合、これらの次元は同じでなければなりません。出力は同じ次元の cell 配列になります。

    str が文字ベクトルからなる cell 配列の場合、出力も同様です。str が string 配列の場合、出力は cell 配列となり、最も内部のセルには string 配列が含まれます。

一致を 1 つのみ返す 'once' オプションを指定した場合、出力は 1 行 m 列の string 配列、文字ベクトルの cell 配列、あるいは strexpression の一方または両方と同じ次元の cell 配列になります。

特定のインデックスで予測されるトークンが見つからない場合、MATLAB はそのトークンに対して空の値、文字ベクトルに対して ''、または文字列に対して "" を返します。

'names'

各名前付きトークンの名前とテキスト

すべての一致に対して:

  • strexpression が両方とも文字ベクトルまたは string スカラーの場合、出力は 1 行 n 列の構造体配列になります。ここで n は一致の数です。構造体のフィールド名は、トークン名に対応しています。

  • str または expression が文字ベクトルの cell 配列または string 配列で、他方が文字ベクトルまたは string スカラーの場合、出力は配列である引数と同じ次元をもつ cell 配列になります。各セルは、1 行 n 列の構造体配列を含んでいます。

  • strexpression が両方とも cell 配列または string 配列の場合、これらの次元は同じでなければなりません。出力は同じ次元の cell 配列になります。

'split'

str 内の一致しない部分文字列のテキスト

すべての一致に対して:

  • strexpression が両方とも文字ベクトルまたは string スカラーの場合、出力は 1 行 n 列の配列になります。ここで n は不一致の数です。

    str が文字ベクトルの場合、出力は文字ベクトルの cell 配列になります。str が string スカラーの場合、出力は string 配列になります。

  • str または expression の一方が文字ベクトルの cell 配列または string 配列で、他方が文字ベクトルまたは string スカラーの場合、出力は入力配列と同じ次元をもつ cell 配列になります。各セルには、1 行 n 列の文字ベクトルの cell 配列が含まれます。

    str が文字ベクトルまたは文字ベクトルの cell 配列の場合、出力は文字ベクトルの cell 配列になります。str が string 配列の場合、出力は各セルに string 配列が含まれる cell 配列になります。

  • strexpression が両方とも cell 配列の場合、両者とも同じ次元をもたなければなりません。出力は同じ次元の cell 配列になります。

    str が文字ベクトルからなる cell 配列の場合、出力も同様です。str が string 配列の場合、出力は各セルに string 配列が含まれる cell 配列になります。

詳細

すべて折りたたむ

トークン

トークンは、正規表現に部分的に対応する一致テキストの一部です。トークンを作成するには、正規表現の部分をかっこで囲みます。

たとえば、次の表現は日、月、年のトークンを含め、dd-mmm-yyyy という形式の日付を検出します。

str = 'Here is a date: 01-Apr-2020';
expression = '(\d+)-(\w+)-(\d+)';

mydate = regexp(str,expression,'tokens');
mydate{:}
ans =

  1×3 cell array

    {'01'}    {'Apr'}    {'2020'}

簡単に識別できるように、トークンに名前を関連付けることができます。

str = 'Here is a date: 01-Apr-2020';
expression = '(?<day>\d+)-(?<month>\w+)-(?<year>\d+)';

mydate = regexp(str,expression,'names')
mydate = 

  struct with fields:

      day: '01'
    month: 'Apr'
     year: '2020'

詳細については、正規表現におけるトークンを参照してください。

拡張機能

バージョン履歴

R2006a より前に導入