## Tcl9.0.3/Tk9.0.3 Documentation > Tcl Commands > string

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    string — 文字列を操作する　　Manipulate strings
  構文 SYNOPSIS
  説明 DESCRIPTION
    string cat ?string1? ?string2...?
    string compare ?-nocase? ?-length length? string1 string2
    string equal ?-nocase? ?-length length? string1 string2
    string first needleString haystackString ?startIndex?
    string index string charIndex
    string insert string index insertString
    string is class ?-strict? ?-failindex varname? string
      alnum
      alpha
      ascii
      boolean
      control
      dict
      digit
      double
      entier
      false
      graph
      integer
      list
      lower
      print
      punct
      space
      true
      upper
      wideinteger
      wordchar
      xdigit
    string last needleString haystackString ?lastIndex?
    string length string
    string map ?-nocase? mapping string
    string match ?-nocase? pattern string
      *
      ?
      [chars]
      \x
    string range string first last
    string repeat string count
    string replace string first last ?newstring?
    string reverse string
    string tolower string ?first? ?last?
    string totitle string ?first? ?last?
    string toupper string ?first? ?last?
    string trim string ?chars?
    string trimleft string ?chars?
    string trimright string ?chars?
  陳腐な副命令 OBSOLETE SUBCOMMANDS
    string wordend string charIndex
    string wordstart string charIndex
  STRING INDICES
    integer
    end
    end-N
    end+N
    M+N
    M-N
  用例 EXAMPLE
  SEE ALSO
  KEYWORDS

### NAME

string — 文字列を操作する　　Manipulate strings

### 構文 SYNOPSIS

string option arg ?arg ...?

### 説明 DESCRIPTION

option に従って､幾つかの文字列操作の内の一つを実行する｡適切な option (短縮されることもある)は次の通り: 　　　 Performs one of several string operations, depending on option. The legal options (which may be abbreviated) are:

string cat ?string1? ?string2...?
  与えられた文字列を丁度直接互いに前後に並べた様に連結し､出来上がった文字列を返す｡もし何も文字列が与えられないと結果は空文字列になる｡ 　　　　 Concatenate the given strings just like placing them directly next to each other and return the resulting compound string. If no strings are present, the result is an empty string.

  この基本形は､入混じった引用をしたい場合や､ return -level 0 を持ち出すことなく連結の結果を返すことが目的の場合に､文字列を並べるより､時として使い易い､又､引数のリストを構築した上で､空文字列を連結用文字列にして join で連結するよりも遥かに効率的である｡ 　　　 This primitive is occasionally handier than juxtaposition of strings when mixed quoting is wanted, or when the aim is to return the result of a concatenation without resorting to return -level 0, and is more efficient than building a list of arguments and using join with an empty join string.

string compare ?-nocase? ?-length length? string1 string2
  文字列 string1 と string2 との一文字づつの比較を遂行する｡ string1 が string2 に比べ辞書順で小さいか､等しいか､大きいかによって -1 か 0 か 1 を返す｡もし､ -length が指定されていると､最初の length 文字のみが比較に使用される｡-length は､負数であると無視される｡もし -nocase が指定されていると､文字列は､大文字小文字を区別しない方法で比較される｡　　　 Perform a character-by-character comparison of strings string1 and string2. Returns -1, 0, or 1, depending on whether string1 is lexicographically less than, equal to, or greater than string2. If -length is specified, then only the first length characters are used in the comparison. If -length is negative, it is ignored. If -nocase is specified, then the strings are compared in a case-insensitive manner.

string equal ?-nocase? ?-length length? string1 string2
  文字列 string1 と string2 との一文字づつの比較を遂行する｡ string1 と string2 が同一であれば1を､そうでなければ､0 を返す｡もし､ -length が指定されていると､最初の length 文字のみが比較に使用される｡-length は､負数であると無視される｡もし -nocase が指定されていると､文字列は､大文字小文字を区別しない方法で比較される｡　　　 Perform a character-by-character comparison of strings string1 and string2. Returns 1 if string1 and string2 are identical, or 0 when not. If -length is specified, then only the first length characters are used in the comparison. If -length is negative, it is ignored. If -nocase is specified, then the strings are compared in a case-insensitive manner.

string first needleString haystackString ?startIndex?
  haystackString から､文字並び needleString の中にある文字に正確に合致する文字の並びを捜索する｡もし見付かると､haystackString の内の最初の適合する合致内の先頭の文字の位置を返す｡もし､見付からなければ-1を返す｡もし､( STRING INDICES に記述されているどれかの形式で) startIndex が指定されていると､捜索は haystackString 内の指定された位置の文字から開始される様に制約される｡譬えば､ 　　　　　　 Search haystackString for a sequence of characters that exactly match the characters in needleString. If found, return the index of the first character in the first such match within haystackString. If not found, return -1. If startIndex is specified (in any of the forms described in STRING INDICES), then the search is constrained to start with the character in haystackString specified by the index. For example,

      string first a 0a23456789abcdef 5

  は10を返すが､ will return 10, but

      string first a 0123456789abcdef 11

  は-1を返す｡ 　　　　 will return -1.

string index string charIndex
  string 引数の charIndex 番目の文字を返す｡ charIndex の 0 は文字列の最初の文字に該当する｡ charIndex は STRING INDICES の節で述べられる様に指示されてもよい:　　　　　 Returns the charIndex'th character of the string argument. A charIndex of 0 corresponds to the first character of the string. charIndex may be specified as described in the STRING INDICES section.

  もし charIndex が零より小さいか､文字列の長さと同じかより大きいと､この命令は空文字列を返す｡　　　　 If charIndex is less than 0 or greater than or equal to the length of the string then this command returns an empty string.

string insert string index insertString
  insertStringがindex番目の文字に装入されたstringを返す｡ indexはSTRING INDICES節に記述された様に指定し得る｡ Returns a copy of string with insertString inserted at the index'th character. The index may be specified as described in the STRING INDICES section.

  もし､indexが先頭に対して相対的であれば､ 返される文字列に挿入される第一番の文字は､指定された索引にある｡ もし､indexが末尾に対して相対的であれば､ 返される文字列に挿入される末尾の文字は､指定された索引にある｡ If index is start-relative, the first character inserted in the returned string will be at the specified index. If index is end-relative, the last character inserted in the returned string will be at the specified index.

  もし､indexがstringの先頭かそれより前であれば(譬えば､indexが0)､ insertStringはstringの前に添えられる｡ もし､indexがstringの末尾かそれより後であれば(譬えば､indexがend)､ insertStringはstringの後に添えられる｡ If index is at or before the start of string (e.g., index is 0), insertString is prepended to string. If index is at or after the end of string (e.g., index is end), insertString is appended to string.

string is class ?-strict? ?-failindex varname? string
  string が､指定された文字の級class の適正な要員であれば 1 を､そうでなければ 0 を返す｡如何なる級class でも､もし､ -strict が指定されていると､空文字列は 0 を､指定されていなければ空文字列は 1 を返す｡-failindex が指定されている場合には､もし､函数が 0 を返すと､文字列の中の､もはやその級class が適切でなくなった位置を､名前が varname の変数に保存する｡もし函数が １ を返す時には varname は設定されない｡次の文字の級class が認識される(級classの名前は短縮可能である):　　　　 Returns 1 if string is a valid member of the specified character class, otherwise returns 0. If -strict is specified, then an empty string returns 0, otherwise an empty string will return 1 on any class. If -failindex is specified, then if the function returns 0, the index in the string where the class was no longer valid will be stored in the variable named varname. The varname will not be set if string is returns 1. The following character classes are recognized (the class name can be abbreviated):

  alnum
    ユニコードのローマ字か数字のどれかの文字｡　　　　　 Any Unicode alphabet or digit character.

  alpha
    ユニコードのどれかのローマ字｡(訳註 漢字も文字に含まれる<--ver8では)　　　　　　 Any Unicode alphabet character.

  ascii
    \u0080 より小さい何かの文字(7-bit ascii の範囲のもの) 　　　　 Any character with a value less than \u0080 (those that are in the 7-bit ascii range).

  boolean
    Tcl_GetBoolean に許容されるどれかの形式｡　　　　　　　　　　 Any of the forms allowed to Tcl_GetBoolean.

  control
    ユニコードのどれかの制御文字｡　　　　　　　　　　　　　　　 Any Unicode control character.

  dict
    適切などれかの辞書構造､前後に空白があっても好い｡ 不適切な辞書構造では､0が返され､ 且つ､varnameは､ 解析が失敗した “element” の索引を､ 又はそれが定まらない場合は､-1を､ 含むことになる｡ Any proper dict structure, with optional surrounding whitespace. In case of improper dict structure, 0 is returned and the varname will contain the index of the “element” where the dict parsing fails, or -1 if this cannot be determined.

  digit
    ユニコードの数字のどれかの文字｡註意すべきはこれは [0-9] の範囲の外の文字も含む｡　　　　　　　　　　 Any Unicode digit character. Note that this includes characters outside of the [0-9] range.

  double
    Tcl_GetDoubleFromObj に許容されるどのような形式でも｡　　　　　　 Any of the forms allowed to Tcl_GetDoubleFromObj.

  entier
    整数の同義語｡ Synonym for integer.

  false
    Tcl_GetBoolean が許容するどれかの形式の偽値の値｡　　　　　 Any of the forms allowed to Tcl_GetBoolean where the value is false.

  graph
    空白以外のユニコードの印刷文字 ｡　　　　 Any Unicode printing character, except space.

  integer
    任意の大きさの Tcl の整数の為の適正な文字形式のどれかであって､更に前後に空白があってもよい｡受入れ可能な形式は C 言語の Tcl_GetBignumFromObj 業務譜に厳密に受入れられるものである｡　　　　　 Any of the valid string formats for an integer value of arbitrary size in Tcl, with optional surrounding whitespace. The formats accepted are exactly those accepted by the C routine Tcl_GetBignumFromObj.

  list
    何であれ､適切なリスト構造で､前後に空白があってもよい｡非適切なリスト構造の場合､0 が返され､ varname はリストの構造解析が破綻した箇所の “要素” の位置を含むか､又は､それが決定できない場合は -1 を含むことになる｡　　　　 Any proper list structure, with optional surrounding whitespace. In case of improper list structure, 0 is returned and the varname will contain the index of the “element” where the list parsing fails, or -1 if this cannot be determined.

  lower
    ユニコードの小文字のローマ字のどれか｡　　　　　 Any Unicode lower case alphabet character.

  print
    ユニコードのどれかの印刷できる文字､空白でもよい｡　　　　 Any Unicode printing character, including space.

  punct
    ユニコードの句読点のどれか｡　　　 Any Unicode punctuation character.

  space
    ユニコードの空白文字､蒙古の母音分離記号(mongolian vowel separator) (U+180e)､零幅空白(U+200b)､語の結合記号(U+2060)､零幅非分割空白(U+feff)(=BOM)のどれか｡　　　　　 Any Unicode whitespace character, mongolian vowel separator (U+180e), zero width space (U+200b), word joiner (U+2060) or zero width no-break space (U+feff) (=BOM).

  true
    Tcl_GetBoolean が許容するどれかの形式の真値の値｡　　　　　 Any of the forms allowed to Tcl_GetBoolean where the value is true.

  upper
    ユニコード文字揃いの中の大文字のローマ字のどれか｡　　　　 Any upper case alphabet character in the Unicode character set.

  wideinteger
    何であれ､適切な形式の広幅精度の Tcl 整数､前後に空白があってもよい｡値が桁溢れの場合 0 を返し､varname は -1 を含むことになる｡　　　　 Any of the valid forms for a wide integer in Tcl, with optional surrounding whitespace. In case of overflow in the value, 0 is returned and the varname will contain -1.

  wordchar
    ユニコードの語の文字のどれか｡即ち､どれかのローマ字､及びユニコードのどれかの継ぎ合せ区切り文字(譬えば､下線)｡　　　　 Any Unicode word character. That is any alphanumeric character, and any Unicode connector punctuation characters (e.g. underscore).

  xdigit
    十六進数([0-9A-Fa-f])の文字のどれか｡　　　 Any hexadecimal digit character ([0-9A-Fa-f]).

  論理値boolean と 真値true と 偽値false では､函数が0を返す場合は､適正な論理値の多様な性質に基づき､varname は常に 0 に設定される｡　　　　　 In the case of boolean, true and false, if the function will return 0, then the varname will always be set to 0, due to the varied nature of a valid boolean value.

string last needleString haystackString ?lastIndex?
  haystackString から､ needleString の中にある文字に正確に合致する文字の並びを捜索する｡もし見付かると､haystackString の内から最後に合致した箇所の先頭の文字の位置を返す｡もし､見付からなければ-1を返す｡もし､ lastIndex が( STRING INDICES に記載されているどれかの形式で)指定されていると､haystackString 内の lastIndex に指定された位置かそれより前の位置の文字列のみが捜索の対象になる｡譬えば､　　　　 　　　 Search haystackString for a sequence of characters that exactly match the characters in needleString. If found, return the index of the first character in the last such match within haystackString. If there is no match, then return -1. If lastIndex is specified (in any of the forms described in STRING INDICES), then only the characters in haystackString at or before the specified lastIndex will be considered by the search. For example,

      string last a 0a23456789abcdef 15

  は10を返すが､ will return 10, but

      string last a 0a23456789abcdef 9

  は1を返す｡　　　　 will return 1.

string length string
  string の中の文字の個数を与える十進数の文字列が返る｡註意すべきは､これは､文字列を保存するのに使われるバイトの個数と同じになるとは限らない｡値がバイト配列値であると(２進文字符号系の通信路の読出しの返り値の様な)､これは対象の実際のバイト長さを返す｡　　　　　 Returns a decimal string giving the number of characters in string. Note that this is not necessarily the same as the number of bytes used to store the string. If the value is a byte array value (such as those returned from reading a binary encoded channel), then this will return the actual byte length of the value.

string map ?-nocase? mapping string
  mapping 中の鍵-値 対に基き string 中の部分文字列を置換える｡mapping は array get の返り値の様な､鍵 値 鍵 値... のリストである｡文字列中のそれぞれの鍵の表現は対応する値に置換えられる｡もし､-nocase が指定されていると､合致は､大文字小文字の違いを考慮せずに行われる｡ 鍵 と 値 は両方とも複数の文字でもよい｡置換えは､順番を守って行われる､そこで､リスト中の最初に現れる鍵が最初に検査され､その後､同様に続く､ string は１回だけの操作になるので､先に生じた置換えは後の鍵の合致に影響されない｡譬えば､次の例では､　　　　　　 Replaces substrings in string based on the key-value pairs in mapping. mapping is a list of key value key value ... as in the form returned by array get. Each instance of a key in the string will be replaced with its corresponding value. If -nocase is specified, then matching is done without regard to case differences. Both key and value may be multiple characters. Replacement is done in an ordered manner, so the key appearing first in the list will be checked first, and so on. string is only iterated over once, so earlier key replacements will have no affect for later key matches. For example,

      string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababc

  は文字列 01321221 を返すことになる｡　　　　 will return the string 01321221.

  註意すべきは､先に位置する鍵が後の鍵の先頭部分に一致すると､後の鍵を完全に邪魔する｡そこで､もし､先の例の順番を次のように変えると｡　　　　 Note that if an earlier key is a prefix of a later one, it will completely mask the later one. So if the previous example is reordered like this,

      string map {1 0 ab 2 a 3 abc 1} 1abcaababcabababc

  こうすると文字列 02c322c222c を返すことになる｡ 　　　　 it will return the string 02c322c222c.

string match ?-nocase? pattern string
  pattern が string に合致するかを確かめて､もし合致すれば 1 を､そうでなければ 0 を返す｡ -nocase が指定されると､大文字小文字を区別しない方法で模様と文字列の合致を試みる｡二つの文字列の合致について､その内容は､次の特別の並びが pattern 中に現れることを除いて同一でなければならない: 　　　　 See if pattern matches string; return 1 if it does, 0 if it does not. If -nocase is specified, then the pattern attempts to match against the string in a case insensitive manner. For the two strings to match, their contents must be identical except that the following special sequences may appear in pattern:

  *
    string 中のどの様な文字の並びにも合致する､空文字列でもよい｡　　　　 Matches any sequence of characters in string, including a null string.

  ?
    string 中のどの様な一文字にも合致する｡ Matches any single character in string.

  [chars]
    chars として与えられた群の中のどれかの文字に合致する｡もし､chars 中の並びに形式 x-y が現れると､ x か y か､又は､その間のどの文字かに合致する｡ -nocase と一緒に使われる時は､その範囲の両端が先に小文字に変換される｡{[A-z]} は､大文字小文字を区別する時は “_” に合致するが( “_” は “Z” と “a” の間にあるので)､然るに -nocase 付きの場合は､これは {[A-Za-z]}の様に看做される(そして､虞らくは､そもそもその意味だったのであろう)｡ [訳註 通常 [chars] は説明文の様に波括弧“{}”で括って使う､怠ると先に命令置換が生じて狂う] 　　　　 Matches any character in the set given by chars. If a sequence of the form x-y appears in chars, then any character between x and y, inclusive, will match. When used with -nocase, the end points of the range are converted to lower case first. Whereas {[A-z]} matches “_” when matching case-sensitively (since “_” falls between the “Z” and “a”), with -nocase this is considered like {[A-Za-z]} (and probably what was meant in the first place).

  \x
    一文字 x に合致する｡これは､ pattern 中で文字 *?[]\ の特別な解釈を避ける方法を提供する｡　　　　 Matches the single character x. This provides a way of avoiding the special interpretation of the characters *?[]\ in pattern.

string range string first last
  string から､初めの位置が first で､且つ､末尾の位置が last の範囲の連続した文字並びを取出して返す (STRING INDICES内に記述した書式を遣う)｡ 位置0は文字列の最初の文字を指す; 索引endは文字列の最後の文字を指す｡ first と last は index の方法で指定してもよい｡もし､ first が零より小さいと恰も零のように扱われ､もし､ last が文字列の長さより大きいか等しいと､恰も end であるかの様に扱われる｡もし first が last より大きいと空文字列が返される｡　　　　 Returns a range of consecutive characters from string, starting with the character whose index is first and ending with the character whose index is last (using the forms described in STRING INDICES). An index of 0 refers to the first character of the string; an index of end refers to last character of the string. first and last may be specified as for the index method. If first is less than zero then it is treated as if it were zero, and if last is greater than or equal to the length of the string then it is treated as if it were end. If first is greater than last then an empty string is returned.

string repeat string count
  それ自身とcount回連結された､stringから構成される文字列を返す｡ もし､countが0なら､空文字列が返される｡[訳註:連結回数count回なら1+count倍になるか???ｔｃｌ8版の説明文参照] Returns a string consisting of string concatenated with itself count times. If count is 0, the empty string will be returned.

string replace string first last ?newstring?
  string から初めの文字の位置が first ､且つ､末尾の文字の位置が last の範囲の連続した文字並びを取除く｡ (STRING INDICES内に記述した書式を遣う) 位置0は文字列の最初の文字を指す｡ first と last は index の方法で指定してもよい｡もし､ newstring が指定されると取除かれた文字の範囲にそれが置かれる｡もし､ first が零より小さいと恰も零のように扱われ､もし､ last が文字列の長さより大きいか等しいと､それは恰も end であるかの様に扱われる｡もし first が last より大きいか､或は､元の文字列の長さと等しいかより大きいか､ last が零より小さいと､元の文字列が手付かずで返される｡　　　　　 Removes a range of consecutive characters from string, starting with the character whose index is first and ending with the character whose index is last (using the forms described in STRING INDICES). An index of 0 refers to the first character of the string. First and last may be specified as for the index method. If newstring is specified, then it is placed in the removed character range. If first is less than zero then it is treated as if it were zero, and if last is greater than or equal to the length of the string then it is treated as if it were end. The initial string is returned untouched, if first is greater than last, or if first is equal to or greater than the length of the initial string, or last is less than 0.

string reverse string
  string と同じ長さで逆順の文字列を返す｡　　　　 Returns a string that is the same length as string but with its characters in the reverse order.

string tolower string ?first? ?last?
  string の全ての大文字(又は表題文字)が小文字に変換され､それ以外はそのまま同じ文字列が返る｡もし､ first が指定されていると､それは､修正を始める文字列中の最初の文字を指す｡ last が指定されていないと､ first の位置の文字のみが変換され､ そうでなく､指定されていると､ last は､ 文字列中の､修正を終了する文字位置を指す(そこまで修正する)｡ first と last は STRING INDICES 内に記載した形式を使用して指定してもよい｡ 　　　　　 Returns a value equal to string except that all upper (or title) case letters have been converted to lower case. If first is specified, it refers to the first char index in the string to start modifying. If last is not specified, only the character at position first is converted, otherwise last refers to the char index in the string to stop at (inclusive). first and last may be specified using the forms described in STRING INDICES.

string totitle string ?first? ?last?
  string の最初の文字がユニコードの表題形(又は､表題形が存在しない場合は大文字)に､残りの文字列が小文字に変換され､それ以外はそのまま同じ文字列が返る｡もし､ first が指定されていると､それは､修正を始める文字列中の最初の文字を指す｡ もし､ last が指定されていないと､ first の位置の文字のみが変換され､ そうでなく､指定されていると､ last は､ 文字列中の､修正を終了する文字位置を指す(そこまで修正する)｡ first と last は STRING INDICES 内に記載した形式を使用して指定してもよい｡ 　　　　　 Returns a value equal to string except that the first character in string is converted to its Unicode title case variant (or upper case if there is no title case variant) and the rest of the string is converted to lower case. If first is specified, it refers to the first char index in the string to start modifying. If last is not specified, only the character at position first is converted, otherwise last refers to the char index in the string to stop at (inclusive). first and last may be specified using the forms described in STRING INDICES.

string toupper string ?first? ?last?
  string の全ての小文字(又は表題文字)が大文字に変換され､それ以外は元と同じ文字列を返す｡もし､ first が指定されていると､それは､修正を始める文字列中の最初の文字を指す｡ もし､ last が指定されていないと､ 位置 first の文字のみが変換されるが､そうではなく､それも指定されていると､ last は､文字列中の､修正を終了する文字位置を参照する(そこまで修正する)｡ first と last は STRING INDICES 内に記載した形式を使用して指定してもよい｡ Returns a value equal to string except that all lower (or title) case letters have been converted to upper case. If first is specified, it refers to the first char index in the string to start modifying. If last is not specified, only the character at position first is converted, otherwise last refers to the char index in the string to stop at (inclusive). first and last may be specified using the forms described in STRING INDICES.

string trim string ?chars?
  chars によって与えられた文字列内に存在するどのような文字も先頭又は末尾から取除かれた他は､元と同じ string に等しい値を返す｡もし､ chars が指定されないと､空白(string is space が 1 を返すどのような文字でも､及び "\0")が取除かれる｡[譯註: "\0"は"終端ヌル文字"] 　　　　 Returns a value equal to string except that any leading or trailing characters present in the string given by chars are removed. If chars is not specified then white space is removed (any character for which string is space returns 1, and "\0").

string trimleft string ?chars?
  chars によって与えられた文字列内に存在するどのような文字も先頭から取除かれた他は､元と同じ string に等しい値を返す｡もし､ chars が指定されないと､空白(string is space が 1 を返すどのような文字でも､及び "\0")が取除かれる｡　　　　 Returns a value equal to string except that any leading characters present in the string given by chars are removed. If chars is not specified then white space is removed (any character for which string is space returns 1, and "\0").

string trimright string ?chars?
  chars によって与えられた文字列内に存在するどのような文字も末尾から取除かれた他は､元と同じ string に等しい値を返す｡もし､ chars が指定されないと､空白(string is space が 1 を返すどのような文字でも､及び "\0")が取除かれる｡　　　　 Returns a value equal to string except that any trailing characters present in the string given by chars are removed. If chars is not specified then white space is removed (any character for which string is space returns 1, and "\0").

#### 陳腐な副命令 OBSOLETE SUBCOMMANDS

これらの副命令は現在は運用されているが､将来の改版で､なくなる可能性が大きい､理由は､その機能が使われる可能性が殆どないか､窮めて錯覚を誘発し易いから｡　　　　 These subcommands are currently supported, but are likely to go away in a future release as their functionality is either virtually never used or highly misleading.

string wordend string charIndex
  string の charIndex 番目の文字を含んだ語の中の最後の文字に直に続く文字の位置を返す｡ charIndex は STRING INDICES 内に記載した形式を使用して指定してもよい｡語は何かの英数字(ユニコード文字又は十進数)か下線(ユニコード接続詞句切り)文字が連続している範囲､又は､これら以外の何かの一文字､と看做される｡　　　　 Returns the index of the character just after the last one in the word containing character charIndex of string. charIndex may be specified using the forms in STRING INDICES. A word is considered to be any contiguous range of alphanumeric (Unicode letters or decimal digits) or underscore (Unicode connector punctuation) characters, or any single character other than these.

string wordstart string charIndex
  string の charIndex 番目の文字を含んだ語の中の最初の文字の位置を返す｡ charIndex は STRING INDICES 内に記載した形式を使用して指定してもよい｡語は何かの英数字(ユニコード文字又は十進数)か下線(ユニコード接続詞句切り)文字が連続している範囲､又は､これら以外の何かの一文字､と看做される｡　　　　 Returns the index of the first character in the word containing character charIndex of string. charIndex may be specified using the forms in STRING INDICES. A word is considered to be any contiguous range of alphanumeric (Unicode letters or decimal digits) or underscore (Unicode connector punctuation) characters, or any single character other than these.

### STRING INDICES

文字列の中を索引するために参照する時は(譬えば､ string index や string range の為に)､次の形式に対応している:　　　　 When referring to indices into a string (e.g., for string index or string range) the following formats are supported:

integer
  string is integer -strict に適するどのような位置の値についても､その整数の位置で指定される文字(譬えば､ 2 は “abcd” 中の “c” を参照する)｡ 　　　 For any index value that passes string is integer -strict, the char specified at this integral index (e.g., 2 would refer to the “c” in “abcd”).

end
  文字列の末尾の文字(譬えば､ end は “abcd” 中の “d” を参照する)｡　　　 The last char of the string (e.g., end would refer to the “d” in “abcd”).

end-N
  文字列の末尾の文字から整数の偏寄 N で指定しただけ差引く(譬えば､ “end-1” は “abcd” 中の “c” を参照する)｡ 　　　 The last char of the string minus the specified integer offset N (e.g., “end-1” would refer to the “c” in “abcd”).

end+N
  文字列の末尾の文字から整数の偏寄 N で指定しただけ加える(譬えば､ “end+-1” は “abcd” 中の “c” を参照する)｡ 　　　 The last char of the string plus the specified integer offset N (e.g., “end+-1” would refer to the “c” in “abcd”).

M+N
  整数 M と N の和である整数の位置で指定される文字(譬えば､ “1+1” は “abcd” 中の “c” を参照する)｡　　　 The char specified at the integral index that is the sum of integer values M and N (e.g., “1+1” would refer to the “c” in “abcd”).

M-N
  整数 M と N の差である整数の位置で指定される文字(譬えば､ “2-1” は “abcd” 中の “b” を参照する)｡　　　 The char specified at the integral index that is the difference of integer values M and N (e.g., “2-1” would refer to the “b” in “abcd”).

上述の指定で､整数値 M の後に空白は付けないし､整数値 N には先行する空白は付けない｡[訳註: M N は整数を記憶している変数も可｡文字列 M+N を記憶している一個の変数でも可]　　　 In the specifications above, the integer value M contains no trailing whitespace and the integer value N contains no leading whitespace.

### 用例 EXAMPLE

変数 string の中の文字列が､文字列 foobar の適切な非-空の接頭辞であるか否か試験する｡　　　 Test if the string in the variable string is a proper non-empty prefix of the string foobar.

    set length [string length $string]
    if {$length == 0} {
        set isPrefix 0
    } else {
        set isPrefix [string equal -length $length $string "foobar"]
    }

### SEE ALSO

expr, list

### KEYWORDS

case conversion, compare, index, integer value, match, pattern, string, word, equal, ctype, character, reverse