ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

strrep

部分文字列の検索と置換

構文

newStr = strrep(str,old,new)

説明

newStr = strrep(str,old,new) は、str 内で出現するすべての oldnew に置き換えます。

すべて折りたたむ

文字ベクトルを作成し、その中の部分文字列を置き換えます。

chr = 'The quick brown fox'
chr = 
'The quick brown fox'
newChr = strrep(chr,'quick','sly')
newChr = 
'The sly brown fox'

string 配列を作成します。R2017a 以降、二重引用符を使用して string を作成できるようになりました。

str = ["the quick brown fox";
       "and the lazy dog"]
str = 2x1 string array
    "the quick brown fox"
    "and the lazy dog"

配列の各要素の部分文字列を置き換えます。

newStr = strrep(str,'the','a')
newStr = 2x1 string array
    "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 array
    {'Date Received: 2016-09-06'}
    {'Date Accepted: 2016-10-11'}

繰り返され、オーバーラップするパターンをもつ文字ベクトルを作成します。関数 strrepreplaceregexprep を使用してパターンを置き換えた結果を比較します。

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 は、テキスト内でパターンのインスタンスを検出した時点でただちにそれを置き換えます。

入力引数

すべて折りたたむ

入力テキスト。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。

データ型: string | char | cell

置き換える部分文字列。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。

old が非スカラーの string または cell 配列の場合、そのサイズは str と同じでなければなりません。それ以外の場合は、文字ベクトルまたは string スカラーにできます。

データ型: string | char | cell

新しい部分文字列。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。

new が非スカラーの string または cell 配列の場合、そのサイズは str と同じでなければなりません。それ以外の場合は、文字ベクトルまたは string スカラーにできます。

データ型: string | char | cell

アルゴリズム

  • 関数 strrep は、空の文字ベクトルまたは空の string の検索と置換は行いません。つまり、strold の両方に空の文字ベクトル ('') または空の string ("") が含まれる場合、strrep は空の文字ベクトルまたは string を new の内容で置換しません。

  • 関数 strfind と同様、strrep はテキストを置き換える前に、str にある old のインスタンスをすべて検出します。重複するパターンについては、strrep は複数の置き換えを実行します。

拡張機能

R2006a より前に導入