主要内容

正则表达式

正規表現(大文字小文字を区別する)の一致

説明

startIndex= regexp (str表达式は,正規表現で指定した文字パタ,ンと一致するstrの各部分文字列の開始@ @ンデックスを返します。一致要素がない場合,startIndexは空配列になります。テキストのオーバーラップする部分と一致する部分文字列がある場合は,最初の一致のインデックスのみが返されます。

startIndexendIndex= regexp(str表达式は,一致するすべての開始aaplンデックスと終了aaplンデックスを返します。

= regexp (str表达式outkeyは,outkeyで指定された出力を返します。たとえば,outkey“匹配”の場合,正则表达式は開始esc escンデックスではなく,式と一致する部分文字列を返します。

1、……N] = regexp(str表达式outkey1、……outkeyN)は,複数の出力キ,ワ,ドで指定された出力を,指定された順番に返します。たとえば,“匹配”“令牌”を指定した場合,正则表达式は式全体と一致する部分文字列と,式の一部と一致するトクンを返します。

___= regexp (___选项1、……选项米)は,指定されたオプションフラグを使って検索を修正します。たとえば,“ignorecase”を指定すると,大文字小文字を区別しない検索が実行されます。任意の入力を含めたり,前述の構文から任意の出力を要求することができます。

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

すべて折りたたむ

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

str =“蝙蝠猫可以汽车外套法庭CUT ct cat扫描”;表达=“c(五个母音字母)+ t”;startIndex = regexp(str,表达式)
startIndex =1×25 17

正規表現“c(五个母音字母)+ t”は次のパタ,ンを指定します。

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

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

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

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

startIndexの値は,正規表現と一致する各単語の最初の文字の。一致する単語は电子邮箱ンデックス5で始まり,外套はesc escンデックス17で始まります。减少という単語は大文字のため,一致しません。

Cell配列内の文字ベクトルに含まれる大文字とスペ,スの位置を検索します。

STR = {马德里,西班牙《罗密欧与朱丽叶》“MATLAB很棒”};capExpr =“[a - z]”;spaceExpr =' \ s ';capStartIndex = regexp(str,capExpr);spaceStartIndex = regexp(str,spaceExpr);

入力strがcell配列のため,capStartIndexspaceStartIndexもcell配列です。

大文字の@ @ンデックスを表示します。

celldisp (capStartIndex)
capStartIndex{1} = 1 9 capStartIndex{2} = 1 11 capStartIndex{3} = 1 2 3 4 5 6

スペスのンデックスを表示します。

celldisp (spaceStartIndex)
10 . spaceStartIndex{1} = 8 spaceStartIndex{2} = 6 10 spaceStartIndex{3} = 7

文字xを含む文字ベクトル内の単語をキャプチャします。

str =“多!regexp函数可以帮助您放松。”;表达=“\ w * x \ w *”;matchStr = regexp(str,表达式,“匹配”
matchStr =1 x2单元格{“正则表达式”}{'放松'}

正規表現“\ w * x \ w *”は次の文字ベクトルを指定します。

  • 任意の数の英数字またはアンダスコア文字で始まります(\ w *)。

  • 文字列は小文字xを含んでいます。

  • 文字列は\ w *で指定されているように,xの後,文字なしを含む,任意の数の英数字またはアンダ,スコア文字で終了します。

文字ベクトルを複数の部分文字列に分割します。ここで各部分文字列は,文字で区切られます。

STR = [“将此文本拆分为几部分”];表达=“\ ^”;splitStr = regexp(str,表达式,“分裂”
splitStr =1 x3单元格{'分割'}{'此文本分为'}{'几段'}

正規表現ではキャレット記号に特別な意味があるため,キャレット記号の前にエスケープ文字であるバックスラッシュ()を追加します。セミコロンなど別の区切り記号で文字ベクトルを分割する場合,バックスラッシュを含める必要はありません。

“匹配”キ,ワ,ドを使用して正規表現と一致する文字ベクトルの部分をキャプチャし,“分裂”キ,ワ,ドを使用して一致しない残りの部分をキャプチャします。

str =“她在海边卖贝壳。”;表达=“[Ss] h。”;[match,noMatch] = regexp(str,表达式,“匹配”“分裂”
匹配=1 x3单元格{'She'} {'She'} {'sho'}
noMatch =1 x4单元格{0x0 char} {' sell sea'} {'lls by the sea'} {'re.'}

正規表現“[Ss] h。”は次のことを指定します。

  • 年代または年代は最初の文字

  • hは2番目の文字

  • 3番目の文字はドット()で指定されているように,スペ,スなど任意の文字と一致させることができる

文字ベクトルの最初(または最後)の文字が正規表現と一致する場合,“分裂”キ,ワ,ドからの最初(または最後)の戻り値は空の文字ベクトルになります。

オプションで,部分文字列から元の文字ベクトルを再構築します。

combinedStr = strjoin(noMatch,match)
combinedStr =“她在海边卖贝壳。”

正規表現内でト,クンを定義して,htmlタグの名前を検索します。ト,クンはかっこ()で示されます。

str ='My title 




这里是一些文本

'
;表达=' < (\ w +).*>.* ';[符号,匹配]= regexp(str,表达式,“令牌”“匹配”);

正規表現< (\ w +).*>.*は次のパタ,ンを指定します。

  • < (\ w +)は,開始山かっことその後に続く1以上の英数字またはアンダスコア文字を検索します。かっこで\ w +を囲むと,ト,クン内のHTMLタグの名前がキャプチャされます。

  • * >。はHTML属性など,任意の数の追加文字と,閉じ山かっこを検索します。

  • < / \ 1 >は最初のトクン(\ 1で指定)に対応する終了タグを検索します。終了タグの形式は< / tagname >です。

ト,クンと一致する部分文字列を表示します。

celldisp(令牌)
令牌{1}{1}=标题令牌{2}{1}= p
celldisp(匹配)
matches{1} = My title 




 matches{2} = 

这里有一些文本

次の形式で日付または月のどらかを最初に表示できる日付を解析します。mm / dd / yyyyまたはdd-mm-yyyy。名前付きト,クンを使って,日付の各部を特定します。

str =“2000年1月11日20-02-2020年3月30日16-04-2020”;表达式= [(? <月> \ d +) /(? <天> \ d +) /(? <年> \ d +) |”...‘(? <天> \ d +) -(? <月> \ d +) -(? <年> \ d +) '];tokenNames = regexp(str,表达式,“名字”);

正規表現は次のパタ,ンを指定します。

  • (? <名称> \ d +)は1以上の数値を検索し,。

  • |は論理演算子です。これは日付に使用できるパターンが 2 つあることを意味します。最初のパターンでは、スラッシュ (/)によりト,クンが分割されます。2番目のパターンでは、ハイフン (-)によりト,クンが分割されます。

名前付きト,クンを表示します。

k = 1:length(tokenNames) disp(tokenNames(k))结束
月:“01”日:“11”年:“2000”月:“02”日:“20”年:“2020”月:“03”日:“30”年:“2000”月:“04”日:“16”年:“2020”

単語の大文字と小文字の両方の▪▪▪ンスタンスを見▪▪▪けます。

既定では,正则表达式は大文字小文字を区別する一致を実行します。

str =一个包含大写和小写文本的字符向量;表达=“\ w *案”;matchStr = regexp(str,表达式,“匹配”
matchStr =1x1单元阵列{“小写”}

正規表現は次の文字ベクトルを指定します。

  • 任意の数の英数字またはアンダスコア文字で始まります(\ w *)。

  • 文字列はリテラルテキスト(情况下)で終了します。

関数regexpi正则表达式と同じ構文を使用しますが,大文字小文字を区別しない一致を実行します。

matchWithRegexpi = regexpi(str,表达式,“匹配”
matchWithRegexpi =1 x2单元格{“大写”}{“小写”}

別の方法として,“ignorecase”オプションを使って,正则表达式の大文字小文字を区別する一致を無効にします。

matchWithIgnorecase = regexp(str,表达式,“匹配”“ignorecase”
matchWithIgnorecase =1 x2单元格{“大写”}{“小写”}

複数の表現の場合は,(我)?検索フラグを使って,選択した表現の大文字小文字を区別する一致を無効にします。

表达式= {“(? -我)\ w *案”...“(?我)\ w *案”};matchStr = regexp(str,表达式,“匹配”);celldisp (matchStr)
matchStr{1}{1} =小写matchStr{2}{1} =大写matchStr{2}{2} =小写

改行 (\ n)を含む文字ベクトルを作成し,正規表現を使用して解析します。正则表达式matchStrを複数行のテキストが格納された细胞配列として返すため,テキストをこの细胞配列から抽出してすべての行を表示することができます。

STR = sprintf(“abc \ n de”);表达=”。*’;matchStr = regexp(str,表达式,“匹配”);matchStr {:}
Ans = 'abc de'

既定では、ドット()は改行を含むすべての文字と一致し,元の文字ベクトルと等価の単一の一致を返します。

“dotexceptnewline”オプションを使って,一致から改行文字を除外します。これにより,テキストの行ごとに個別の一致が返ります。

matchStrNoNewline = regexp(str,表达式,“匹配”“dotexceptnewline”
matchStrNoNewline =1 x2单元格{'abc'} {' de'}

またはのメタ文字と“lineanchors”オプションを使って,各行の最初または最後の文字を見けます。

表达=“美元”。;lastInLine = regexp(str,表达式,“匹配”“lineanchors”
lastInLine =1 x2单元格{' c '}{“e”}

テキスト内で一致を検索し,出力をスカラ,セルに返します。

Cで始まり,tで終わり,その間に1文字以上の母音を含む単語を検索します。開始▪▪ンデックスをスカラ▪▪セルに返します。

str =“蝙蝠猫可以汽车外套法庭CUT ct cat扫描”;表达=“c(五个母音字母)+ t”;startIndex = regexp(str,表达式,“forceCellOutput”
startIndex =1x1单元阵列{17 [5]}

開始aapl . exeンデックスに数値配列としてアクセスするには,セルのaapl . exeンデックスを指定します。

startIndex {1}
ans =1×25 17

一致および不一致の部分文字列を返します。各出力は個別のスカラ,セルにあります。

[match,noMatch] = regexp(str,表达式,“匹配”“分裂”“forceCellOutput”
匹配=1x1单元阵列{1 x2细胞}
noMatch =1x1单元阵列{1 x3细胞}

一致の配列にアクセスするには,匹配の@ @ンデックスを指定します。

{1}匹配
ans =1 x2单元格{“猫”}{“外套”}

一致しない部分文字列にアクセスするには,noMatchの@ @ンデックスを指定します。

noMatch {1}
ans =1 x3单元格{'bat '} {' can car '} {' court CUT ct C…'}

入力引数

すべて折りたたむ

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

str表达式が字符串配列または单元格配列の場合,これらの次元は同じでなければなりません。

デ,タ型:字符串|字符|细胞

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

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

メタ文字

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

メタ文字

説明

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

“……是”は,“是”で終わる5の連続する文字のシケンスと一致します。

[c1c2c3.

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

“(rp)是”“雨”“痛苦”または“.ain”と一致します。

[c ^1c2c3.

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

“[^ * rp]还”“是”で終わる4文字のシ,ケンスと一致します。ただし,“雨”“痛苦”および‘*是‘は除きます。たとえば,“获得”“躺”または“虚空”と一致します。

[c1- c2

c1c2の範囲の任意の文字

“[g]”は,一个Gの範囲の1文字と一致します。

\ w

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

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

\ W

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

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

\ s

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

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

\ S

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

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

\ d

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

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

\ D

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

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

上的\または阿\ {N}

8 進数値Nの文字

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

\ xNまたはx \ {N}

16 進数値Nの文字

“\ x2C”は16進数2摄氏度で定義されるコンマ文字と一致します。

文字表現

演算子

説明

、一个

アラ,ム(ビ,プ)

\ b

バックスペ,ス

\ f

フォ,ムフィ,ド

\ n

改行

r \

キャリッジリタ,ン

\ t

水平タブ

v \

垂直タブ

字符

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

量指定子

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

量指定子

表現の出現回数

expr *

0回以上の繰り返し。

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

expr吗?

0回または1回。

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

expr +

1回以上の繰り返し。

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

expr {m, n}

回以上ngydF4y2Ba回以下の繰り返し。

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

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

expr {m,}

回以上の繰り返し。

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

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

expr {n}

正確にngydF4y2Ba回の繰り返し。

{n, n}と等価です。

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

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

' '' '

モド

説明

expr

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

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

' < tr > < td > < p >文本< / p > < / td >”

expr?

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

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

'
' '

expr+

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

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

グル,プ化演算子

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

グル,プ化演算子

説明

(expr)

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

“乔? n \年代(\ w *)は,名が约翰または乔恩である人の姓が含まれているト,クンをキャプチャします。

(?: expr)

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

”(?:[五个母音字母][^五个母音字母)){2}”“立刻”のように,1 .。

グル,プ化を使用しない場合,“[五个母音字母][^五个母音字母){2}”は1の母音の後に2。

(? > expr)

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

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

(expr1 | expr2)

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

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

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

“(让|电话)\ w +”は,または电话を含むがそれらで終わらない単語と一致します。

アンカ

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

アンカ

一致対象

^ expr

入力テキストの最初。

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

expr美元

入力テキストの最後。

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

\ < expr

単語の最初。

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

expr \ >

単語の最後。

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

前後参照アサ,ション

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

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

前後参照アサ,ション

説明

expr(? =测试)

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

“\ w * (? = ing)”は,入力テキスト“是飞,不是坠落。”“飞”“秋天”など,後ろに荷兰国际集团(ing)が続く語句と一致します。

expr(? !测试)

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

“我(? ! ng)”は,後ろにngが続かない文字の@ @ンスタンスと一致します。

(? < = expr测试)

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

(? < = re) \ w *’は,入力テキスト“更新、再利用、再循环”“新”“使用”“循环”など,“重新”の後に続く語句と一致します。

(? < !测试)expr

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

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

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

演算

説明

(? =测试)expr

测验exprの両方に一致します。

(? = [a - z])[^五个母音字母)”は子音と一致します。

(? !测试)expr

exprには一致し,测验には一致しません。

”(? ![五个母音字母])[a - z]”は子音と一致します。

論理演算子と条件演算子

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

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

条件演算子

説明

expr1 | expr2

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

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

“(让|电话)\ w +”または电话で始まる単語と一致します。

(?(电导率)expr)

条件气孔导度真正的の場合,exprに一致します。

窗户®システムで実行する場合,”(? ? @ispc) [a - z]: \ \)”C: \などのドラ@ @ブ名と一致します。

(?(电导率)expr1 | expr2)

条件气孔导度真正的の場合,expr1に一致します。それ以外の場合はexpr2に一致します。

先生(年代 ?)\..*?(?( 1)她|他)\ w *’は,テキストが夫人で始まる場合は她的を含むテキストに一致し,テキストが先生で始まる場合は他的を含むテキストに一致します。

ト,クン演算子

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

順序ト,クン演算子

説明

(expr)

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

“乔? n \年代(\ w *)は,名が约翰または乔恩である人の姓が含まれているト,クンをキャプチャします。

\ N

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

' < (\ w +).*>.* 'はテキスト' <标题>一些文本< /名称>”“标题”など,htmlタグのト,クンをキャプチャします。

(? (N) expr1 | expr2)

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

先生(年代 ?)\..*?(?( 1)她|他)\ w *’は,テキストが夫人で始まる場合は她的を含むテキストに一致し,テキストが先生で始まる場合は他的を含むテキストに一致します。

名前付きト,クン演算子

説明

(? <名称> expr)

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

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

\ k <名称>

的名字で参照されるト,クンに一致します。

' <(? <标记> \ w +).*>.* >”はテキスト' <标题>一些文本< /名称>”“标题”など,htmlタグのト,クンをキャプチャします。

(?(名字)expr1 | expr2)

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

先生(? <性>年代 ?)\..*?(?( 性)她|他)\ w *’は,テキストが夫人で始まる場合は她的を含むテキストに一致し,テキストが先生で始まる場合は他的を含むテキストに一致します。

メモ

式に入れ子にされたかっこがある場合,matlab®は一番外側のかっこのペアに対応するト,クンをキャプチャします。たとえば”(和(y |奖赏))”という検索パタ,ンの場合,matlabは“安德鲁”に対するト,クンを作成しますが,“y”“报答”に対するト,クンは作成しません。

動的正規表現

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

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

演算子

説明

(? ? expr)

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

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

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

(? ? @cmd)

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

”({2})。? (? ? @fliplr(1美元))”“神父”など4文字以上の回文を検索します。

(? @cmd)

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

‘\ w * ? (\ w) (? @disp(1美元))\ 1 \ w *’は重複する文字(など)を含む単語と一致し,中間結果を表示します。

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

置換演算子

説明

$ &または0美元

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

美元的

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

美元的

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

$ N

N番目のト,クン

$ <名称>

名前付きト,クン

$ {cmd}

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

コメント

文字

説明

(? #评论)

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

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

検索フラグ

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

フラグ

説明

(? -我)

大文字と小文字を区別します。正则表达式regexprepの既定です。

(我)?

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

(?)

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

(? - s)

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

(? - m)

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

(?)

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

(? - x)

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

x (?)

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

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

(?我)\ w *

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

(?我:\ w *)

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

デ,タ型:字符|细胞|字符串

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

出力キ,ワ,ド

戻り値

“开始”(既定)

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

“结束”

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

“tokenExtents”

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

“匹配”

表达式のパタ,ンと一致する各部分文字列のテキスト

“令牌”

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

“名字”

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

“分裂”

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

デ,タ型:字符|字符串

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

既定

オバラド

説明

“所有”

“一次”

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

“nowarnings”

“警告”

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

“matchcase”

“ignorecase”

大文字小文字を区別する(既定)か,無視するかを指定します。

“noemptymatch”

“emptymatch”

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

“dotall”

“dotexceptnewline”

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

“stringanchors”

“lineanchors”

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

“literalspacing”

“freespace”

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

デ,タ型:字符|字符串

出力引数

すべて折りたたむ

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

  • str表达式が両方とも文字ベクトルまたは字符串スカラ,の場合,出力は行ベクトルになります。一致がない場合は空の配列になります。

  • strまたは表达式の一方が文字ベクトルの细胞配列または字符串配列で,他方が文字ベクトルまたは字符串スカラーの場合,出力は行ベクトルの细胞配列になります。出力cell配列の次元は,入力配列の次元と同じです。

  • str表达式が両方とも细胞配列または字符串配列の場合,これらの次元は同じでなければなりません。出力は同じ次元のcell配列になります。

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

  • str表达式が両方とも文字ベクトルまたは字符串スカラ,の場合,出力は行ベクトルになります。一致がない場合は空の配列になります。

  • strまたは表达式の一方が文字ベクトルの细胞配列または字符串配列で,他方が文字ベクトルまたは字符串スカラーの場合,出力は行ベクトルの细胞配列になります。出力cell配列の次元は,入力配列の次元と同じです。

  • str表达式が両方とも细胞配列または字符串配列の場合,これらの次元は同じでなければなりません。出力は同じ次元のcell配列になります。

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

出力キ,ワ,ド

出力の説明

出力のタ@ @プと次元

“开始”

一致の開始@ @ンデックス

“开始”“结束”の両方:

  • str表达式が両方とも文字ベクトルまたは字符串スカラ,の場合,出力は行ベクトルになります。一致がない場合は空の配列になります。

  • strまたは表达式の一方が文字ベクトルの细胞配列または字符串配列で,他方が文字ベクトルまたは字符串スカラーの場合,出力は行ベクトルの细胞配列になります。出力cell配列の次元は,入力配列の次元と同じです。

  • str表达式が両方とも细胞配列または字符串配列の場合,これらの次元は同じでなければなりません。出力は同じ次元のcell配列になります。

“结束”

一致の終了@ @ンデックス

“tokenExtents”

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

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

  • str表达式が両方とも文字ベクトルまたは字符串スカラ,の場合,出力は1行ngydF4y2Ba列のcell配列になります。ここでngydF4y2Baは一致の数です。各セルには,行2列のescンデックスの数値配列が含まれています。ここでは一致内のト,クンの数です。

  • strまたは表达式のどちらかが文字ベクトルの细胞配列または字符串配列の場合,出力は入力配列と同じ次元の细胞配列になります。各セルには1行ngydF4y2Ba列のcell配列が含まれています。ここで内側の各セルには行2列の数値配列が含まれています。

  • str表达式が両方とも细胞配列または字符串配列の場合,これらの次元は同じでなければなりません。出力は同じ次元のcell配列になります。

1の一致しか返さない“一次”オプションを指定した場合,出力は行2列の数値配列か,strまたは表达式のどらか一方または両方と同じ次元のcell配列のいずれかになります。

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

“匹配”

表达式のパタ,ンと一致する各部分文字列のテキスト

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

  • str表达式が両方とも文字ベクトルまたは字符串スカラ,の場合,出力は1行ngydF4y2Ba列の配列になります。ここでngydF4y2Baは一致の数です。

    strが文字ベクトルの場合,出力は文字ベクトルの单元格配列になります。strが字符串スカラ,の場合,出力は字符串配列になります。

  • strまたは表达式の一方が文字ベクトルの细胞配列または字符串配列で,他方が文字ベクトルまたは字符串スカラーの場合,出力は配列である引数と同じ次元をもつ细胞配列になります。

    strが文字ベクトルまたは文字ベクトルの细胞配列の場合,出力は文字ベクトルの细胞配列になります。strが字符串配列の場合,出力は各セルに字符串配列が含まれる细胞配列になります。

  • str表达式が両方とも细胞配列または字符串配列の場合,これらの次元は同じでなければなりません。出力は同じ次元のcell配列になります。

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

“一次”オプションを指定して1の一致のみを返す場合,出力は文字ベクトル,字符串配列またはstrおよび表达式と同じ次元のcell配列になります。

“令牌”

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

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

  • str表达式が両方とも文字ベクトルまたは字符串スカラ,の場合,出力は1行ngydF4y2Ba列のcell配列になります。ここでngydF4y2Baは一致の数です。各セルには,1行列の一致のcell配列が含まれます。ここでは一致内のト,クンの数です。

    strが文字ベクトルの場合,出力は文字ベクトルの单元格配列になります。strが字符串配列の場合,出力は各セルに字符串配列が含まれる细胞配列になります。

  • strまたは表达式の一方が文字ベクトルの细胞配列または字符串配列で,他方が文字ベクトルまたは字符串スカラーの場合,出力は配列である引数と同じ次元をもつ细胞配列になります。各セルには1行ngydF4y2Ba列のcell配列が含まれます。ここで内側の各セルには1行列の配列が含まれます。

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

  • str表达式が両方とも细胞配列または字符串配列の場合,これらの次元は同じでなければなりません。出力は同じ次元のcell配列になります。

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

一致を1のみ返す“一次”オプションを指定した場合,出力は1行列の字符串配列,文字ベクトルの单元格配列,あるいはstr表达式の一方または両方と同じ次元のcell配列になります。

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

“名字”

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

すべての一致に対して:

  • str表达式が両方とも文字ベクトルまたは字符串スカラ,の場合,出力は1行ngydF4y2Ba列の構造体配列になります。ここでngydF4y2Baは一致の数です。構造体のフィ,ルド名は,ト,クン名に対応しています。

  • strまたは表达式が文字ベクトルの细胞配列または字符串配列で,他方が文字ベクトルまたは字符串スカラーの場合,出力は配列である引数と同じ次元をもつ细胞配列になります。各セルは,1行ngydF4y2Ba列の構造体配列を含んでいます。

  • str表达式が両方とも细胞配列または字符串配列の場合,これらの次元は同じでなければなりません。出力は同じ次元のcell配列になります。

“分裂”

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

すべての一致に対して:

  • str表达式が両方とも文字ベクトルまたは字符串スカラ,の場合,出力は1行ngydF4y2Ba列の配列になります。ここでngydF4y2Baは不一致の数です。

    strが文字ベクトルの場合,出力は文字ベクトルの单元格配列になります。strが字符串スカラ,の場合,出力は字符串配列になります。

  • strまたは表达式の一方が文字ベクトルの细胞配列または字符串配列で,他方が文字ベクトルまたは字符串スカラーの場合,出力は入力配列と同じ次元をもつ细胞配列になります。各セルには,1行ngydF4y2Ba列の文字ベクトルのcell配列が含まれます。

    strが文字ベクトルまたは文字ベクトルの细胞配列の場合,出力は文字ベクトルの细胞配列になります。strが字符串配列の場合,出力は各セルに字符串配列が含まれる细胞配列になります。

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

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

詳細

すべて折りたたむ

トクン

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

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

str =“这是一个日期:2020年4月1日”;表达=”(\ d +) - (\ w +) (\ d +) ';Mydate = regexp(str,表达式,“令牌”);替换{:}
ans = 1×3单元格数组{'01'}{'Apr'} {'2020'}

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

str =“这是一个日期:2020年4月1日”;表达=“(? <天> \ d +) -(? <月> \ w +) -(? <年> \ d +) ';Mydate = regexp(str,表达式,“名字”
mydate = struct with fields:日:'01'月:'Apr'年:'2020'

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

ヒント

  • テキスト内から完全に一致する文字を検索するには,包含またはstrfindを使用します。文字のパターンを見つけるには、正则表达式を使用します。

アルゴリズム

MATLABは左から右に各入力文字ベクトルまたは字符串を解析し,文字ベクトル内または字符串内のテキストを,正規表現の最初の要素と一致させようとします。このプロセスの実行中,matlabは一致しないすべてのテキストをスキップします。

MATLABが最初の一致を検出すると,表現の2番目の要素との一致がないか解析が継続され,以下同様に処理が行われます。

拡張機能

バ,ジョン履歴

R2006aより前に導入