主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

strrep

部分文字列の検索と置換

説明

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

いずれかの入力引数が非スカラーの字符串配列または文字ベクトルの细胞配列である場合,その他の入力引数のサイズに互換性がなければなりません。

すべて折りたたむ

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

空空的=“敏捷的棕色狐狸”
chr =“敏捷的棕色狐狸”
newChr = strrep(空空的,“快速”“狡猾”
newChr =“狡猾的棕色狐狸”

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

str = [“敏捷的棕色狐狸”“和懒狗”
str =2 x1字符串"敏捷的棕色狐狸" "和懒狗"

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

newStr = strrep (str,“的”“一个”
newStr =2 x1字符串"一只敏捷的棕色狐狸" "一只懒惰的狗"

细胞配列のプレースホルダーの内容“___”を2番目の细胞配列にある別の値に置き換えます。

C1 = {的收到日期:___接受日期:___的};老=“___”;新= {“2016-09-06”“2016-10-11”};C2 = strrep (C1、旧、新)
C2 =2 x1细胞{'Date Received: 2016-09-06'} {'Date Accepted: 2016-10-11'}

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

重复='abc 2 def 22 ghi 222 JKL 2222'
重复= 'abc 2 def 22 ghi 222 JKL 2222'

関数strfindを使用して,繰り返しパターン“22”のインデックスを検索します。strfindは,オーバーラップするインスタンスを含め,パターンのすべてのインスタンスを検索します。

指数= strfind(重复,“22”
指数=1×611 18 19 26 27 28

strrepを使用して“22”を置き換えます。strrepを使用すると,strfindで確認されたインスタンスがすべて置き換えられます。

using_strrep = strrep(重复,“22”‘*’
Using_strrep = 'abc 2 def * ghi ** JKL ***'

取代を使用して“22”を置き換えます。この方法では,strrepで置き換えられるインスタンスがすべて置き換えられるわけではありません。

using_replace =取代(重复,“22”‘*’
Using_replace = 'abc 2 def * ghi *2 JKL **'

regexprepを使用して“22”を置き換えます。この結果は,関数取代を使用した場合と同じです。

using_regexprep = regexprep(重复,“22”‘*’
使用_regexprep = 'abc 2 def * ghi *2 JKL **'

strrepは,インスタンスを置き換える前に,パターンのすべてのインスタンスを検出します。一方、関数取代および関数regexprepは,テキスト内でパターンのインスタンスを検出した時点でただちにそれを置き換えます。

入力引数

すべて折りたたむ

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

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

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

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

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

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

アルゴリズム

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

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

拡張機能

R2006aより前に導入