System.SysUtils.TStringHelper.IndexOfAnyUnquoted
Delphi
function IndexOfAnyUnquoted(const AnyOf: array of Char; StartQuote, EndQuote: Char): Integer; overload;
function IndexOfAnyUnquoted(const AnyOf: array of Char; StartQuote, EndQuote: Char; StartIndex: Integer): Integer; overload;
function IndexOfAnyUnquoted(const AnyOf: array of Char; StartQuote, EndQuote: Char; StartIndex: Integer; Count: Integer): Integer; overload;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.SysUtils.pas | System.SysUtils | TStringHelper |
説明
<section begi n="short"/>指定した文字列の中の、指定した種類の引用符で囲まれていない部分で、指定した文字のいずれかが最初に出現する箇所のインデックスを返します。引用符で囲まれていない一致する文字がなければ、-1 を返します。
IndexOfAnyUnquoted の規則は以下のとおりです。
- 指定された開始引用符の後から指定された終了引用符の前までにある文字は、引用符で囲まれていると見なされます。
- 開始引用符に対応する終了引用符がなければ、開始引用符の後の文字はすべて引用符で囲まれていると見なされます。
- 終了引用符は、その前の開始引用符を閉じます。1 つの終了引用符で複数の開始引用符を閉じることはできません。
IndexOfAnyUnquoted が受け取るパラメータは次のとおりです。
AnyOf
: 照合する文字の配列です。IndexOfAnyUnquoted は、指定された引用符で囲まれていない部分で、この文字のいずれかが最初に出現する箇所を探します。StartQuote
:開始引用符の文字です。EndQuote
:終了引用符の文字です。開始引用符の文字と同じでもかまいません。StartIndex
(任意指定): IndexOfAnyUnquoted が照合文字の検索を開始する場所の、文字列のインデックスです。検索時に文字列の先頭から読み飛ばす文字数と考えることができます。開始する場所のインデックスを指定しなければ、IndexOfAnyUnquoted は文字列の先頭から検索を開始します。- 警告: 指定された
StartIndex
より小さいインデックスの位置にある引用符も読み飛ばされ、どの文字が引用符で囲まれていてどの文字が囲まれていないかを判断する際に考慮の対象になりません。下の表でStartIndex
に値が指定されている例を参照してください。
- 警告: 指定された
Count
(任意指定): 検索対象となる文字列の文字数です。Count
の値を指定しなければ、IndexOfAnyUnquoted は文字列の末尾まで検索します。
例
以下の表に、IndexOfAnyUnquoted にさまざまな引数を渡して実行した例を示します。表の文字列の列では、戻り値のインデックスに該当する文字を太字で表示しています。
文字列 | AnyOf
|
StartQuote
|
EndQuote
|
StartIndex
|
Count
|
結果(インデックス) | 備考 |
---|---|---|---|---|---|---|---|
"This" is it | i | " | " | 7 | |||
"This is it | i | " | " | -1 | 終了引用符がないため、開始引用符の後のすべての文字が引用符で囲まれていると見なされます。 | ||
"This" "is" "it" | i | " | " | -1 | 引用符で囲まれていないのは空白だけです。 | ||
<This <is>> it | i | < | > | 12 | ネストした引用符の中にある文字も無視されます。 | ||
"This" is it | i | " | " | 1 | 3 | StartIndex の値を基に IndexOfAnyUnquoted によって開始引用符が読み飛ばされ、終了引用符が開始引用符になります。
| |
This" "is" "it | i | " | " | 5 | -1 | StartIndex の値を基に IndexOfAnyUnquoted によって最初の開始引用符が読み飛ばされて、開始引用符と終了引用符が逆になり、引用符で囲まれていない文字が空白だけになります。
|