ドキュメンテーションヘルプ センター
最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
テキストを正規表現に変換
newStr = regexptranslate(op,str)
例
newStr = regexptranslate(op,str) は str を正規表現に変換し、結果を newStr に返します。newStr は regexp、regexpi、regexprep の各関数で正規表現として使用できます。入力引数 op は regexptranslate が実行する変換のタイプを指定します。たとえば、op に 'escape' を指定すると、regexptranslate は str の特殊文字を出力でリテラル文字になるように変換します。newStr のデータ型は str と同じです。
op
str
newStr
regexp
regexpi
regexprep
regexptranslate
'escape'
すべて折りたたむ
関数 regexptranslate を使用して、文字ベクトルの特殊文字を変換します。次に、regexp でその結果を正規表現として使用します。
'\n' 文字を含む文字ベクトルを作成します。
'\n'
chr = 'The sequence \n generates a new line.'
'\n' を '\' と 'n' の連続した 2 文字として検索する正規表現を作成します。関数 regexp は '\n' を改行文字として解釈するため、regexptranslate を使用して、'\n' をエスケープする正規表現を作成します。
'\'
'n'
pattern = regexptranslate('escape','\n')
pattern = '\\n'
chr で '\n' の開始インデックスを検索します。regexp が '\n' を改行として解釈しないようにするには、pattern を正規表現として使用します。
chr
pattern
idx = regexp(chr,pattern)
idx = 14
'\n' をエスケープせずに regexp を呼び出します。regexp は '\n' を改行として解釈するため、chr のリテラル文字は検索されません。関数 regexp は、一致が見つからない場合は空の配列を返します。
idx = regexp(chr,'\n')
idx = []
string を作成します。R2017a 以降、二重引用符を使用して string を作成できるようになりました。
str = "Put your money in."
テキスト '$0.02' を、'money' という語と置き換えるテキストとして指定します。'$' 文字と '.' 文字をエスケープするには、regexptranslate を使用します。
'$0.02'
'money'
'$'
'.'
r = regexptranslate('escape','$0.02')
r = '\$0\.02'
関数 regexprep を使用して 'money' を置き換えます。
newStr = regexprep(str,'money',r)
newStr = "Put your $0.02 in."
ファイル名を含む string 配列を作成します。次に、'.mat' で終わるファイル名のみを検索します。
'.mat'
str = ["test1.mat","myfile.mat","my-matlab-script.m", ... "jan30.mat","table3.xls"]
str = 1x5 string Columns 1 through 4 "test1.mat" "myfile.mat" "my-matlab-script.m" "jan30.mat" Column 5 "table3.xls"
string を正規表現と一致させるには、'*.mat' を正規表現として指定します。次に、関数 regexptranslate を使用してワイルドカード文字 '*' を変換します。
'*.mat'
'*'
pattern = regexptranslate('wildcard','*.mat')
pattern = '.*\.mat'
pattern で指定した正規表現を使用して、str の一致する要素を検索します。
matches = regexp(str,pattern)
matches=1×5 cell array {[1]} {[1]} {0x0 double} {[1]} {0x0 double}
logical 配列 TF を作成します。str の対応する要素が pattern と一致する要素に 1 が格納されます。その後、TF を使用して str のインデックスを指定し、'.mat' で終了するファイル名を表示します。
TF
1
tf = ~cellfun('isempty',matches); newStr = str(tf)
newStr = 1x3 string "test1.mat" "myfile.mat" "jan30.mat"
空白文字 (スペース文字や改行文字など) で区切られた単語を含む文字ベクトルを作成します。
chr = 'Whose woods these are I think I know.'; chr = [chr newline 'His house is in the village though']
chr = 'Whose woods these are I think I know. His house is in the village though'
空白文字と一致する正規表現として '\s' を指定します。その後、chr にあるこれらの文字を置き換えます。
'\s'
expression = '\s'; newChr = regexptranslate('flexible',chr,expression)
newChr = 'Whose\swoods\sthese\sare\sI\sthink\sI\sknow.\sHis\shouse\sis\sin\sthe\svillage\sthough'
'wildcard'
'flexible'
変換のタイプ。文字ベクトルまたは string スカラーとして指定します。次の表のオプションを使用して、特殊文字やワイルドカード文字を変換したり、テキストを一致する正規表現に置き換えることができます。
変換のタイプ
説明
str 内のすべての特殊文字 (''$''、''.''、''?''、''['' など) を変換し、regexp、regexpi、regexprep で使用する場合にリテラル文字として処理できるようにします。この変換により、str の各特殊文字の前にバックスラッシュ (エスケープ文字、'\') を挿入します。
'?'
'['
str 内のすべてのワイルドカードと '.' 文字を変換し、regexp、regexpi、regexprep で使用するときに、リテラルのワイルドカード文字とピリオドとして処理できるようにします。この変換により、'*' のすべてのインスタンスを '.*' に、'?' のすべてのインスタンスを '.' に、'.' のすべてのインスタンスを '\.' に置き換えます。
'.*'
'\.'
str のテキストを、テキストと一致する正規表現に置き換えます。'flexible' を指定する場合、置き換えに使用する正規表現を newStr = regexptranslate('flexible',str,expression) の形式で指定します。expression 入力には文字ベクトルまたは string スカラーを使用できます。
newStr = regexptranslate('flexible',str,expression)
expression
この構文は newStr = regexprep(str,expression,regexptranslate('escape',expression)) と等価です。
newStr = regexprep(str,expression,regexptranslate('escape',expression))
入力テキスト。文字ベクトル、文字ベクトルの cell 配列または string 配列として指定します。
contains | regexp | regexpi | regexprep | replace | strfind | strjoin | strrep | strsplit
contains
replace
strfind
strjoin
strrep
strsplit
この例の変更されたバージョンがシステム上にあります。代わりにこのバージョンを開きますか?
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
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:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office