Elisp: String Functions

By Xah Lee. Date: .

Here are the most basic string functions in elisp.


;; length
(length "abc") ; returns 3


;; Extract a substring
(substring myStr myStartPos myEndPos)

Join Strings

;; join strings
(concat "some" "thing")

Match String by Regex

;; check if a string matches a pattern
(string-match myRegex myStr)

See also:

Get Captured String from Regex Match

In emacs, most functions that take a regex argument, after being called, will save/modify info in “match data”, such as caputured groups.

Match data can be accessed by the function match-data, and other functions.

The most useful is match-string, which returns the captured string.

;; get captured match
;; second argument is optional, but required if the last match is done by “string-match”
(match-string 1 myStr)

Replace in String

;; change a given string using regex. Returns changed string.
(replace-regexp-in-string myRegex myReplacement myStr)

Split String

;; split string into parts, returns a list
(split-string "xy_007_cat" "_")

String To/From Number

(string-to-number "3") ; change datatype
(number-to-string 3) ; convert to string
(format "%d" 3) ; similar to number-to-string but with fine control

String to Buffer

Emacs has only a few functions that takes a string as argument. Any non-trivial string processing is done with a buffer.

If you got a big string already somehow, you can put into a buffer by using with-temp-buffer, then insert your string, process it, then use buffer-string to get the whole buffer content.

;; you got myBigString
;; you want to put into a buffer to work with it

  (insert myBigString)

  (goto-char (point-min))

  ;; do stuff here

  ;; return whole buffer string

Trim String and Others

Elisp: Trim String

(info "(elisp) Strings and Characters")

Elisp Basic Functions

  1. Elisp: Cursor Position Functions
  2. Elisp: Text Editing Functions
  3. Elisp: String Functions
  4. Elisp: Buffer and File Functions
  5. Elisp: File and Directory Functions
Like my tutorial? Put $5 at patreon

Or Buy Xah Emacs Tutorial

Or buy a nice keyboard: Best Keyboard for Emacs

Ask me question on patreon