Functions and Variables for strings (Maxima 5.46.0 Manual)

Previous: Functions and Variables for characters, Up: stringproc [Contents][Index]

### 79.4 Functions and Variables for strings

関数: stringp (obj) ¶

  もしobjが文字列なら、`true`を返します。 例はイントロダクションを参照してください。

  Predicate functions · Package stringproc ·

関数: charat (string, n) ¶

  stringのn番目の文字を返します。 stringの一番目の文字はn = 1で返されます。

      (%i1) charat("Lisp",1);
      (%o1)                           L

  Package stringproc ·

関数: charlist (string) ¶

  stringの文字すべてのリストを返します。

      (%i1) charlist("Lisp");
      (%o1)                     [L, i, s, p]
      (%i2) %[1];
      (%o2)                           L

  Package stringproc ·

関数: eval_string (str) ¶

  文字列strをMaxima式としてパースし、評価します。 文字列strは終端子(ドル記号`$`またはセミコロン`;`) を持つかもしれませんし持たないかもしれません。

  もし複数あるなら、最初の式だけがパースされ、評価されます。

  もしstrが文字列でないならエラーが出力されます。

  例:

      (%i1) eval_string ("foo: 42; bar: foo^2 + baz");
      (%o1)                       42
      (%i2) eval_string ("(foo: 42, bar: foo^2 + baz)");
      (%o2)                   baz + 1764

  `parse_string`も参照してください。

  Package stringproc ·

関数: parse_string (str) ¶

  文字列strをMaxima式としてパースします(評価しません)。 文字列strは終端子(ドル記号`$`またはセミコロン`;`) を持つかもしれませんし持たないかもしれません。

  もし複数あるなら、最初の式だけがパースされ、評価されます。

  もしstrが文字列でないならエラーが出力されます。

  例:

      (%i1) parse_string ("foo: 42; bar: foo^2 + baz");
      (%o1)                    foo : 42
      (%i2) parse_string ("(foo: 42, bar: foo^2 + baz)");
                                         2
      (%o2)          (foo : 42, bar : foo  + baz)

  `eval_string`も参照してください。

  Package stringproc ·

関数: scopy (string) ¶

  stringのコピーを新しい文字列として返します。

  Package stringproc ·

関数: sdowncase (string) ¶
関数: sdowncase (string, start) ¶
関数: sdowncase (string, start, end) ¶

  `supcase`と同様ですが、大文字が小文字に変換されます。

  Package stringproc ·

関数: sequal (string_1, string_2) ¶

  もしstring_1とstring_2が同じ長さで、同じ文字を含むなら、 `true`を返します。

  Predicate functions · Package stringproc ·

関数: sequalignore (string_1, string_2) ¶

  `sequal`と同様ですが、文字の大小を無視します。

  Predicate functions · Package stringproc ·

関数: sexplode (string) ¶

  `sexplode`は関数`charlist`の別名です。

  Package stringproc ·

関数: simplode (list) ¶
関数: simplode (list, delim) ¶

  `simplode`は式のリストを取り、それらを結合して文字列にします。 もしデリミタdelimが指定されないなら、 `simplode`はデリミタを使いません。 delimは任意の文字列を取り得ます。

      (%i1) simplode(["xx[",3,"]:",expand((x+y)^3)]);
      (%o1)             xx[3]:y^3+3*x*y^2+3*x^2*y+x^3
      (%i2) simplode( sexplode("stars")," * " );
      (%o2)                   s * t * a * r * s
      (%i3) simplode( ["One","more","coffee."]," " );
      (%o3)                   One more coffee.

  Package stringproc ·

関数: sinsert (seq, string, pos) ¶

  `substring (string, 1, pos - 1)`と 文字列seq、`substring (string, pos)` の結合となる文字列を返します。 stringの一番目の文字は位置1にあることに注意してください。

      (%i1) s: "A submarine."$
      (%i2) concat( substring(s,1,3),"yellow ",substring(s,3) );
      (%o2)                  A yellow submarine.
      (%i3) sinsert("hollow ",s,3);
      (%o3)                  A hollow submarine.

  Package stringproc ·

関数: sinvertcase (string) ¶
関数: sinvertcase (string, start) ¶
関数: sinvertcase (string, start, end) ¶

  位置startからendまでのそれぞれの文字を逆順にすることを除いて stringを返します。 もしendが与えられないなら、 startから stringの終わりまでのすべての文字列が置き換えられます。

      (%i1) sinvertcase("sInvertCase");
      (%o1)                      SiNVERTcASE

  Package stringproc ·

関数: slength (string) ¶

  stringの中の文字の数を返します。

  Package stringproc ·

関数: smake (num, char) ¶

  num個の文字charを持つ新しい文字列を返します。

      (%i1) smake(3,"w");
      (%o1)                          www

  Package stringproc ·

関数: smismatch (string_1, string_2) ¶
関数: smismatch (string_1, string_2, test) ¶

  string_1とstring_2が異なるstring_1の最初の文字の位置、または `false`を返します。 マッチングのデフォルトのテスト関数は`sequal`です。 もし`smismatch`が文字の大小を無視なければいけないなら、 テストとして`sequalignore`を使ってください。

      (%i1) smismatch("seven","seventh");
      (%o1)                           6

  Package stringproc ·

関数: split (string) ¶
関数: split (string, delim) ¶
関数: split (string, delim, multiple) ¶

  stringのすべてのトークンのリストを返します。 それぞれのトークンはパースされていない文字列です。 `split`はdelimをデリミタとして使います。 もしdelimが与えられないなら、 スペース文字がデフォルトのデリミタです。 multipleはデフォルトで`true`のブーリアン変数です。 重複デリミタが1つとして読まれます。 これは、 もしタブが複数スペース文字として保存されているなら、 役立ちます。 もしmultipleが`false`に設定されるなら、 それぞれのデリミタが有効です。

      (%i1) split("1.2   2.3   3.4   4.5");
      (%o1)                 [1.2, 2.3, 3.4, 4.5]
      (%i2) split("first;;third;fourth",";",false);
      (%o2)               [first, , third, fourth]

  Package stringproc ·

関数: sposition (char, string) ¶

  stringの中で、charとマッチする最初の文字の位置を返します。 stringの一番目の文字は位置1にあります。 文字の大小を無視した文字のマッチに関しては， `ssearch`を参照してください。

  Package stringproc ·

関数: sremove (seq, string) ¶
関数: sremove (seq, string, test) ¶
関数: sremove (seq, string, test, start) ¶
関数: sremove (seq, string, test, start, end) ¶

  string同様文字列を返しますが、 seqとマッチする部分文字列すべてなしに返します。 マッチのデフォルトのテスト関数は`sequal`です。 もし`sremove`がseqを検索する間文字の大小を無視しなければいけないなら、 テストとして`sequalignore`を使ってください。 探索を限定するにはstartとendを使ってください。 stringの一番目の文字は位置1にあることに注意してください。

      (%i1) sremove("n't","I don't like coffee.");
      (%o1)                   I do like coffee.
      (%i2) sremove ("DO ",%,'sequalignore);
      (%o2)                    I like coffee.

  Package stringproc ·

関数: sremovefirst (seq, string) ¶
関数: sremovefirst (seq, string, test) ¶
関数: sremovefirst (seq, string, test, start) ¶
関数: sremovefirst (seq, string, test, start, end) ¶

  `seq`とマッチする最初の文字列だけが削除されることを除いて、 `sremove`同様です。

  Package stringproc ·

関数: sreverse (string) ¶

  stringの文字すべてが逆順の文字列を返します。

  Package stringproc ·

関数: ssearch (seq, string) ¶
関数: ssearch (seq, string, test) ¶
関数: ssearch (seq, string, test, start) ¶
関数: ssearch (seq, string, test, start, end) ¶

  文字列seqとマッチするstringの最初の部分文字列の位置を返します。 マッチのためのデフォルトのテスト関数は`sequal`です。 もし`ssearch`が文字の大小を無視しなければいけないなら、 テストとして`sequalignore`を使ってください。 検索を限定するには、startとendを使ってください。 stringの一番目の文字は位置1にあることに注意してください。

      (%i1) ssearch("~s","~{~S ~}~%",'sequalignore);
      (%o1)                                  4

  Package stringproc ·

関数: ssort (string) ¶
関数: ssort (string, test) ¶

  `test (c, d)`が`false`、かつ、`test (d, c)`が`true`であるような2つの連続する文字cとdがないような順で stringの文字すべてを含む文字列を返します。

  ソートのためのデフォルトのテスト関数はclesspです。 テスト関数一式は`{clessp, clesspignore, cgreaterp, cgreaterpignore, cequal, cequalignore}`です。

      (%i1) ssort("I don't like Mondays.");
      (%o1)                    '.IMaddeiklnnoosty
      (%i2) ssort("I don't like Mondays.",'cgreaterpignore);
      (%o2)                 ytsoonnMlkIiedda.'

  Package stringproc ·

関数: ssubst (new, old, string) ¶
関数: ssubst (new, old, string, test) ¶
関数: ssubst (new, old, string, test, start) ¶
関数: ssubst (new, old, string, test, start, end) ¶

  stringの中のoldにマッチするすべての部分文字列を newで置き換えた文字列を返します。 oldとnewは同じ長さである必要はありません。 マッチのためのデフォルトのテスト関数は`sequal`です。 もし`ssubst`がoldを検索する間大文字小文字を無視すべきなら、 テストとして`sequalignore`を使ってください。 検索を制限するには、startとendを使ってください。 stringの一番目の文字は位置1にあることに注意してください。

      (%i1) ssubst("like","hate","I hate Thai food. I hate green tea.");
      (%o1)          I like Thai food. I like green tea.
      (%i2) ssubst("Indian","thai",%,'sequalignore,8,12);
      (%o2)         I like Indian food. I like green tea.

  Package stringproc ·

関数: ssubstfirst (new, old, string) ¶
関数: ssubstfirst (new, old, string, test) ¶
関数: ssubstfirst (new, old, string, test, start) ¶
関数: ssubstfirst (new, old, string, test, start, end) ¶

  oldとマッチする最初の部分文字列だけを置き換えることを除いて、 `subst`と同様です。

  Package stringproc ·

関数: strim (seq,string) ¶

  stringの両端からseqに現れるすべての文字を除いた文字列を返します。

      (%i1) "/* comment */"$
      (%i2) strim(" /*",%);
      (%o2)                        comment
      (%i3) slength(%);
      (%o3)                           7

  Package stringproc ·

関数: striml (seq, string) ¶

  stringの左端だけトリムすることを除いて `strim`と同様です。

  Package stringproc ·

関数: strimr (seq, string) ¶

  stringの右端だけトリムすることを除いて `strim`と同様です。

  Package stringproc ·

関数: substring (string, start) ¶
関数: substring (string, start, end) ¶

  位置startで始まり位置endで終わる stringの部分文字列を返します。 位置endの文字は含まれません。 もしendが与えられないなら、部分文字列は文字列の残りを含みます。 stringの一番目の文字は位置1にあることに注意してください。

      (%i1) substring("substring",4);
      (%o1)                        string
      (%i2) substring(%,4,6);
      (%o2)                          in

  Package stringproc ·

関数: supcase (string) ¶
関数: supcase (string, start) ¶
関数: supcase (string, start, end) ¶

  stringの位置startからendまでの小文字を対応する大文字に置き換えた 文字列を返します。 もしendが与えられないなら、 startからstringの終わりまでのすべての小文字が置き換えられます。

      (%i1) supcase("english",1,2);
      (%o1)                        English

  Package stringproc ·

関数: tokens (string) ¶
関数: tokens (string, test) ¶

  stringから抽出されたトークンのリストを返します。 トークンは、文字があるテスト関数を満たす部分文字列です。 もしテストが与えられないなら、 constituentがデフォルトテストとして使われます。 `{constituent, alphacharp, digitcharp, lowercasep, uppercasep, charp, characterp, alphanumericp}`はテスト関数一式です。 (The Lisp-version of `tokens`のLispバージョンはPaul Grahamによって書かれました。 ANSI Common Lisp, 1996, page 67.)

      (%i1) tokens("24 October 2005");
      (%o1)                  [24, October, 2005]
      (%i2) tokens("05-10-24",'digitcharp);
      (%o2)                     [05, 10, 24]
      (%i3) map(parse_string,%);
      (%o3)                      [5, 10, 24]

  Package stringproc ·

Previous: Functions and Variables for characters, Up: stringproc [Contents][Index]