Main Content

eraseBetween

開始点と終了点の間の部分文字列を削除

説明

newStr = eraseBetween(str,startPat,endPat) は、部分文字列 startPatendPat の間に出現するすべての文字を str から削除しますが、startPatendPat 自体は削除しません。eraseBetween は、残りのテキストを newStr として返します。

str が string 配列または文字ベクトルの cell 配列である場合、eraseBetweenstr の各要素から文字を削除します。出力引数 newStr のデータ型は、str と同じです。

newStr = eraseBetween(str,startPos,endPos) は、位置 startPosendPos の間に出現するすべての文字 (それらの位置にある文字を含む) を、str から削除します。

newStr = eraseBetween(___,'Boundaries',bounds) は、前述の任意の構文で指定した始点と終点について、含めるか除外するかを指示します。bounds'inclusive' の場合はそれらを含め、bounds'exclusive' の場合は除外します。たとえば、eraseBetween(str,startPat,endPat,'Boundaries','inclusive') は、startPatendPat およびそれらの間にあるすべてのテキストを削除します。

すべて折りたたむ

string 配列を作成します。次に、部分文字列の間に出現するテキストを削除します。

str = "The quick brown fox"
str = 
"The quick brown fox"

部分文字列 "quick"" fox" の間に出現するテキストを削除します。関数 eraseBetween はテキストを削除しますが、"quick"" fox" は削除しません。

newStr = eraseBetween(str,"quick"," fox")
newStr = 
"The quick fox"

string 配列の各要素から部分文字列を削除します。開始インジケーターと終了インジケーターとして異なる部分文字列を指定する場合、それらは、str と同じサイズの string 配列または文字ベクトルの cell 配列に含まれなければなりません。

str = ["The quick brown fox jumps";"over the lazy dog"]
str = 2x1 string
    "The quick brown fox jumps"
    "over the lazy dog"

startPos = ["quick";"the"];
endPos = [" fox";" dog"];
newStr = eraseBetween(str,startPos,endPos)
newStr = 2x1 string
    "The quick fox jumps"
    "over the dog"

タグで囲まれたテキストをもつ string 配列を作成します。

str = ["<courseName>Calculus I</courseName>";
       "<semester>Fall 2020</semester>";
       "<schedule>MWF 8:00-8:50</schedule>"]
str = 3x1 string
    "<courseName>Calculus I</courseName>"
    "<semester>Fall 2020</semester>"
    "<schedule>MWF 8:00-8:50</schedule>"

タグで囲まれたテキストを削除します。関数 wildcardPattern を使用し、最初に任意の開始タグおよび終了タグと一致するパターンを作成します。

startPat = "<" + wildcardPattern + ">"
startPat = pattern
  Matching:

    "<" + wildcardPattern + ">"

endPat = "</" + wildcardPattern + ">"
endPat = pattern
  Matching:

    "</" + wildcardPattern + ">"

次に、関数 eraseBetween を呼び出します。

newStr = eraseBetween(str,startPat,endPat)
newStr = 3x1 string
    "<courseName></courseName>"
    "<semester></semester>"
    "<schedule></schedule>"

pattern オブジェクトを作成する関数の一覧については、patternを参照してください。

string 配列を作成し、数値として指定した開始位置と終了位置の間の部分文字列を削除します。

str = "Edgar Allen Poe"
str = 
"Edgar Allen Poe"

部分文字列を削除します。ミドルネームと空白文字 1 文字を削除するには、string 内の 6 番目と 11 番目の位置を指定します。削除する部分文字列には、6 番目と 11 番目の文字が含まれます。

newStr = eraseBetween(str,6,11)
newStr = 
"Edgar Poe"

string 配列の各要素から部分文字列を削除します。数値配列を使用して異なる開始位置と終了位置を指定する場合、数値配列は入力 string 配列と同じサイズでなければなりません。

str = ["Edgar Allen Poe";"Louisa May Alcott"]
str = 2x1 string
    "Edgar Allen Poe"
    "Louisa May Alcott"

startsPos = [6;7];
endPos = [11;10];
newStr = eraseBetween(str,startsPos,endPos)
newStr = 2x1 string
    "Edgar Poe"
    "Louisa Alcott"

境界を強制的に含めて、または含めずに、string 配列からテキストを削除します。境界を含めた場合、eraseBetween は境界を削除します。境界を含めない場合、eraseBetween は出力 string 配列の一部として境界を返します。

str = "small|medium|large"
str = 
"small|medium|large"

6 番目と 13 番目の位置の間のテキストを削除しますが、それらの位置にある文字は削除しません。

newStr = eraseBetween(str,6,13,'Boundaries','exclusive')
newStr = 
"small||large"

2 つの部分文字列の間のテキストと、部分文字列自体も削除します。

str = "The quick brown fox jumps over the lazy dog"
str = 
"The quick brown fox jumps over the lazy dog"
newStr = eraseBetween(str," brown","lazy",'Boundaries','inclusive')
newStr = 
"The quick dog"

文字ベクトルを作成し、開始位置と終了位置の間のテキストを削除します。

chr = 'mushrooms, peppers, and onions'
chr = 
'mushrooms, peppers, and onions'
newChr = eraseBetween(chr,10,19)
newChr = 
'mushrooms and onions'

部分文字列間のテキストを削除します。

newChr = eraseBetween(chr,'mushrooms',' and')
newChr = 
'mushrooms and onions'

入力引数

すべて折りたたむ

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

削除するテキストの開始位置をマークするテキストまたはパターン。次のいずれかとして指定します。

  • string 配列

  • 文字ベクトル

  • 文字ベクトルの cell 配列

  • pattern 配列

str が string 配列または文字ベクトルの cell 配列の場合、str のすべての要素から部分文字列を削除できます。すべての部分文字列の開始位置が同じであるか、あるいは str の要素ごとに開始位置が異なるかを指定できます。

  • 同じ開始位置を指定するには、startPat を文字ベクトル、string スカラー、または pattern オブジェクトとして指定します。

  • 異なる開始位置を指定するには、startPat を string 配列、文字ベクトルの cell 配列、または pattern 配列として指定します。

例: eraseBetween(str,"AB","YZ") は、str の各要素内の ABYZ の間にあるすべての文字を削除します。

例: str21 列の string 配列の場合、eraseBetween(str,["AB";"FG"],["YZ";"ST"]) は、str(1) 内の ABYZ の間にあるすべての文字、および str(2) 内の FGST の間にあるすべての文字を削除します。

削除するテキストの終了位置をマークするテキストまたはパターン。次のいずれかとして指定します。

  • string 配列

  • 文字ベクトル

  • 文字ベクトルの cell 配列

  • pattern 配列

str が string 配列または文字ベクトルの cell 配列の場合、str のすべての要素から部分文字列を削除できます。すべての部分文字列の終了位置が同じであるか、あるいは str の要素ごとに終了位置が異なるかを指定できます。

  • 同じ終了位置を指定するには、endPat を文字ベクトル、string スカラー、または pattern オブジェクトとして指定します。

  • 異なる終了位置を指定するには、endPat を string 配列、文字ベクトルの cell 配列、または pattern 配列として指定します。

例: eraseBetween(str,"AB","YZ") は、str の各要素内の ABYZ の間にあるすべての文字を削除します。

例: str21 列の string 配列の場合、eraseBetween(str,["AB";"FG"],["YZ";"ST"]) は、str(1) 内の ABYZ の間にあるすべての文字、および str(2) 内の FGST の間にあるすべての文字を削除します。

開始位置。数値配列として指定します。

str が string 配列または文字ベクトルの cell 配列の場合、startPos は数値スカラーまたは str と同じサイズの数値配列にすることができます。

例: eraseBetween(str,5,9) は、str の各要素内の 5 番目から 9 番目までのすべての文字を削除します。

例: str21 列の string 配列の場合、eraseBetween(str,[5;10],[9;21]) は、str(1) 内の 5 番目から 9 番目までのすべての文字と、str(2) 内の 10 番目から 21 番目までのすべての文字を削除します。

終了位置。数値配列として指定します。

str が string 配列または文字ベクトルの cell 配列の場合、endPos は数値スカラーまたは str と同じサイズの数値配列にすることができます。

例: eraseBetween(str,5,9) は、str の各要素内の 5 番目から 9 番目までのすべての文字を削除します。

例: str21 列の string 配列の場合、eraseBetween(str,[5;10],[9;21]) は、str(1) 内の 5 番目から 9 番目までのすべての文字と、str(2) 内の 10 番目から 21 番目までのすべての文字を削除します。

境界の動作。'inclusive' または 'exclusive' として指定します。境界の動作が inclusive である場合、前の引数で指定された開始位置と終了位置は削除対象のテキストに含まれます。境界の動作が exclusive である場合、開始位置と終了位置は含まれません。

出力引数

すべて折りたたむ

出力テキスト。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として返されます。strnewStr は同じデータ型です。

拡張機能

バージョン履歴

R2016b で導入