2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AutoLISP 文字列処理関数の使い方

Last updated at Posted at 2020-02-13

文字列処理関数リファレンス(公式ヘルプ)

文字列をリストまたはアトムに変換

(read "aaa")
;; -> AAA
(read "aaa bbb")
;; -> AAA
(read "(a b c)")
;; -> (a b c)

;; 変数を文字列として扱う
(setq val 12345)
(eval (read "val"))
;; -> 12345

アルファベット大文字、小文字変換

(strcase "aaa")
;; -> AAA
(strcase "BBB")
;; -> BBB
(strcase "AbCd")
;; -> ABCD
(strcase "aaa" T)
;; -> aaa
(strcase "BBB" T)
;; -> bbb
(strcase "AbCd" T)
;; -> abcd

文字列を連結する

(strcat "aaa" "bbb" "ccc")
;; -> "aaabbbccc"
(strcat "aaa" "" "bbb")
;; -> "aaabbb"
(strcat "aaa" " " "bbb")
;; -> "aaa bbb"

文字数を数える

(strlen "abcde")
;; -> 5
(strlen "aaa" "bbb" "ccc")
;; -> 9
(strlen "")
;; -> 0
(strlen " ")
;; -> 1
(strlen "あいうえお")
;; -> 10

部分文字列を取得

; 3文字目以降の文字を取得
(substr "abcde" 3)
;; -> cde

;; 1文字目から3文字取得
(substr "abcde" 1 3)
;; -> abc

LISP オブジェクトを表す文字列を、prin1 関数で出力したかのように返す。

(vl-prin1-to-string 3.14)
;; -> "3.14"

LISP オブジェクトを表す文字列を、princ 関数で出力したかのように返す。

(vl-princ-to-string 3.14)
;; -> "3.14"

文字列を文字コードのリストに変換

(vl-string->list "abcde")
;; -> (97 98 99 100 101)
(vl-string->list "12345")
;; -> (49 50 51 52 53)
(vl-string->list "あいうえお")
;; -> (130 160 130 162 130 164 130 166 130 168)
(vl-string->list "")
;; -> nil
(vl-string->list " ")
;; -> (32)
(vl-string->list "     ")
;; -> (32 32 32 32 32)

指定位置の文字のASCIIコードを取得する

(vl-string-elt "abcde" 3)
;; -> 100
(vl-string-elt "Hello World" 6)
;; -> 87

指定された文字を、文字列の先頭から削除

vl-string-left-trim "a" "abcdea")
;; -> "bcdea"
(vl-string-left-trim " " " Hello World ")
;; -> "Hello World "

指定された位置から始まる、2 つの文字列の最も長い共通の接頭語の長さを取得

(vl-string-mismatch "aaabbb" "aaaccc")
;; -> 3
(vl-string-mismatch "bbb" "ccc")
;; -> 0

文字列内の指定された ASCII コードの文字を検索

(vl-string-position 97 "abcde")
;; -> 0
(vl-string-position (ascii "c") "abcde")
;; -> 2

指定された文字を、文字列の末尾から削除

(vl-string-right-trim "a" "abcdea")
;; -> "abcde"
(vl-string-right-trim " " " Hello World ")
;; -> " Hello World"

指定されたパターンを文字列内で検索

(vl-string-search "abc" "abcde")
;; -> 0
(vl-string-search "cde" "abcde")
;; -> 2

文字列内の特定の文字列を他の文字列で置換

;; "bbb" を "aaa" に置換
(vl-string-subst "aaa" "bbb" "aaa bbb ccc ddd")
;; ->"aaa aaa ccc ddd"

文字列内の文字を指定された文字セットで置換

(vl-string-translate "abcde" "12345" "a b c d e ABC abc")
;; -> "1 2 3 4 5 ABC 123"

指定された文字を、文字列の先頭と末尾から削除

(vl-string-trim "a" "abcdea")
;; -> "bcde"
(vl-string-trim " " " Hello World ")
;; -> "Hello World"

ワイルドカードを使用して、文字列のパターン マッチングを行う

(wcmatch "a1b2c2d4" "a")
;; -> nil
(wcmatch "a1b2c3d4" "a*")
;; -> T
(wcmatch "a1b2c3d4" "b#")
;; -> nil
(wcmatch "a1b2c3d4" "*b#*")
;; -> T
(wcmatch "a1b2c3d4" "3@")
;; -> nil
(wcmatch "a1b2c3d4" "*3@*")
;; -> T
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?