Main Content

extractBefore

指定した位置の前にある部分文字列を抽出

説明

newStr = extractBefore(str,pat) は、str の最初の文字で始まり、pat で指定された部分文字列の前で終わる部分文字列を抽出します。patstr 内で複数回出現する場合、newStr は、str の先頭から pat の最初の出現までの str です。

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

newStr = extractBefore(str,pos) は、str の最初の文字で始まり、pos で指定された位置の前で終わる部分文字列を抽出します。

すべて折りたたむ

string 配列を作成し、部分文字列の前に出現するテキストを選択します。

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

部分文字列 " brown" の前に出現する部分文字列を抽出します。関数 extractBefore はテキストを選択し、出力には " brown" を含めません。

newStr = extractBefore(str," brown")
newStr = 
"The quick"

string 配列の要素から新しい 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"

newStr = extractBefore(str,[" brown";" dog"])
newStr = 2x1 string
    "The quick"
    "over the lazy"

また、入力 string 配列のすべての要素に適用する位置として、1 つの部分文字列を指定することもできます。

絶対パスを含むファイル名の string 配列を作成します。

str = ["C:\Temp\MyReport.docx";
       "C:\Data\Experiment1\Trial1\Sample1.csv";
       "C:\Temp\Slides.pptx"]
str = 3x1 string
    "C:\Temp\MyReport.docx"
    "C:\Data\Experiment1\Trial1\Sample1.csv"
    "C:\Temp\Slides.pptx"

パスを抽出するには、最初にパスの最後のファイル名と一致するパターンを作成してから、そのパターンの前にあるパスを抽出します。

絶対パスには、それぞれ "\" 文字が続く任意のテキストで構成された、複数のレベルが含まれる場合があります。したがって、"\" 文字を除く任意の文字と一致するパターンを作成することから始めます。

name = wildcardPattern("Except","\")
name = pattern
  Matching:

    wildcardPattern("Except","\")

次に、"\" 文字と string の末尾との間にある任意の名前と一致するパターンを作成します。関数 textBoundary を使用して string の末尾と一致させます。

pat = "\" + name + textBoundary
pat = pattern
  Matching:

    "\" + wildcardPattern("Except","\") + textBoundary

最後に、extractBefore を呼び出します。

paths = extractBefore(str,pat)
paths = 3x1 string
    "C:\Temp"
    "C:\Data\Experiment1\Trial1"
    "C:\Temp"

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

指定した位置の前の string を作成します。

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

6 番目の文字の前の部分文字列を選択します。

newStr = extractBefore(str,6)
newStr = 
"Edgar"

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

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

newStr = extractBefore(str,[6;7])
newStr = 2x1 string
    "Edgar"
    "Louisa"

各要素から部分文字列を選択し、同じ位置を指定します。

newStr = extractBefore(str,12)
newStr = 2x1 string
    "Edgar Allen"
    "Louisa May "

文字ベクトルを作成します。次に、chr の部分文字列である新しい文字ベクトルを作成します。

chr = 'peppers and onions'
chr = 
'peppers and onions'

8 番目の位置の前の部分文字列を選択します。

newChr = extractBefore(chr,8)
newChr = 
'peppers'

部分文字列の前のテキストを選択します。

newChr = extractBefore(chr,' and')
newChr = 
'peppers'

入力引数

すべて折りたたむ

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

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

  • string 配列

  • 文字ベクトル

  • 文字ベクトルの cell 配列

  • pattern 配列

関数 extractBefore は抽出された部分文字列から pat を除外します。

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

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

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

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

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

出力引数

すべて折りたたむ

出力テキスト。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として返されます。

拡張機能

バージョン履歴

R2016b で導入