strrep
部分文字列の検索と置換
説明
例
文字ベクトル内のテキストを置換
文字ベクトルを作成し、その中の部分文字列を置き換えます。
chr = 'The quick brown fox'
chr = 'The quick brown fox'
newChr = strrep(chr,'quick','sly')
newChr = 'The sly brown fox'
string 配列内のテキストを置換
string 配列を作成します。
str = ["the quick brown fox"; "and the lazy dog"]
str = 2x1 string
"the quick brown fox"
"and the lazy dog"
配列の各要素の部分文字列を置き換えます。
newStr = strrep(str,'the','a')
newStr = 2x1 string
"a quick brown fox"
"and a lazy dog"
部分文字列を複数の値に置換
cell 配列のプレースホルダーの内容 '___'
を、2 番目の cell 配列にある別の値に置き換えます。
C1 = {'Date Received: ___'; 'Date Accepted: ___'}; old = '___'; new = {'2016-09-06'; '2016-10-11'}; C2 = strrep(C1,old,new)
C2 = 2x1 cell
{'Date Received: 2016-09-06'}
{'Date Accepted: 2016-10-11'}
繰り返しパターンの置換
繰り返され、オーバーラップするパターンをもつ文字ベクトルを作成します。関数 strrep
、replace
、regexprep
を使用してパターンを置き換えた結果を比較します。
repeats = 'abc 2 def 22 ghi 222 jkl 2222'
repeats = 'abc 2 def 22 ghi 222 jkl 2222'
関数 strfind
を使用して、繰り返しパターン '22'
のインデックスを検索します。strfind
は、オーバーラップするインスタンスを含め、パターンのすべてのインスタンスを検索します。
indices = strfind(repeats, '22')
indices = 1×6
11 18 19 26 27 28
strrep
を使用して '22'
を置き換えます。strrep
を使用すると、strfind
で確認されたインスタンスがすべて置き換えられます。
using_strrep = strrep(repeats, '22', '*')
using_strrep = 'abc 2 def * ghi ** jkl ***'
replace
を使用して '22'
を置き換えます。この方法では、strrep
で置き換えられるインスタンスがすべて置き換えられるわけではありません。
using_replace = replace(repeats, '22', '*')
using_replace = 'abc 2 def * ghi *2 jkl **'
regexprep
を使用して '22'
を置き換えます。この結果は、関数 replace
を使用した場合と同じです。
using_regexprep = regexprep(repeats, '22', '*')
using_regexprep = 'abc 2 def * ghi *2 jkl **'
strrep
は、インスタンスを置き換える前に、パターンのすべてのインスタンスを検出します。一方、関数 replace
および関数 regexprep
は、テキスト内でパターンのインスタンスを検出した時点でただちにそれを置き換えます。
入力引数
str
— 入力テキスト
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
入力テキスト。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。
データ型: string
| char
| cell
old
— 置き換える部分文字列
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
置き換える部分文字列。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。
データ型: string
| char
| cell
new
— 新しい部分文字列
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
新しい部分文字列。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。
データ型: string
| char
| cell
アルゴリズム
関数
strrep
は、空の文字ベクトルまたは空の string の検索と置換は行いません。つまり、str
とold
の両方に空の文字ベクトル (''
) または空の string (""
) が含まれる場合、strrep
は空の文字ベクトルまたは string をnew
の内容で置換しません。関数
strfind
と同様、strrep
はテキストを置き換える前に、str
にあるold
のインスタンスをすべて検出します。重複するパターンについては、strrep
は複数の置き換えを実行します。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
この関数は tall 配列を制限付きでサポートしています。
元の文字列は、string の tall 配列か、文字ベクトルの tall cell 配列でなければなりません。
古い文字列と新しい文字列の入力は、単一の string、または同じサイズの string の tall 配列にすることができます。
詳細については、メモリに収まらないデータの tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
str
、old
、new
は string スカラーまたは文字ベクトルでなければなりません。生成されたコードは、空の出力を 1 行 0 列の文字配列として返します。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
使用上の注意事項および制限事項:
入力は string 配列または文字ベクトルの cell 配列でなければなりません。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
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)