Emacs Lisp: String Functions

By Xah Lee. Date: . Last updated: .

Here is a complete list of string functions.

Basic String Functions

(length SEQUENCE)
Return the length of vector, list or string SEQUENCE.
(length "abc")
;; 3
(substring STRING &optional FROM TO)
return a substring from position FROM to TO. Position start at 0. By default, TO is to end of string, if omitted. FROM is 0. If negative, count from right.
(substring "abc123" 0 3)
;; "abc"
(concat &rest SEQUENCES)
Concatenate all the arguments and make the result a string.
(concat "some" "thing")
(split-string STRING &optional SEPARATORS OMIT-NULLS TRIM)
Split STRING into substrings bounded by matches for SEPARATORS.
;; split string into parts, returns a list
(split-string "xy_007_cat" "_")

String To/From Number

(string-to-number "3")

(number-to-string 3)

(format "%d" 3)
 ;; same as number-to-string but can also do format

Buffer Text to String

String to Buffer

Match String by Regex

(string-match REGEXP STRING &optional START) Return index of start of first match for REGEXP in STRING, or nil.

[see Emacs: Regular Expression Syntax]

(string-match "b+" "abbc")
;; 1

Get Regex Captured String

(match-string NUM &optional STRING)
Return the string of text matched by the previous search/regexp operation.

NUM is integer. 0 means whole match. 1 means first captured match, 2 means second captured match, etc.

If the last search is buffer text search, STRING should be nil, else it should be the string that is searched.

(setq xx "swimming in sea")

(string-match "\\([a-z]+?ing\\) " xx)

(match-string 1 xx)
;; "swimming"

Regex Replace in String

(replace-regexp-in-string REGEXP REP STRING &optional FIXEDCASE LITERAL SUBEXP START)
Replace string by regex.
(replace-regexp-in-string "</*div>" "<p>" "<div>something</div>")
;; return
;; "<p>something<p>"


Trim String and Others

These are new in Emacs 24.4 (released 2014-10). To use them, you need to first:

(require 'subr-x)
(require 'subr-x)
(string-trim " abc  ")

(info "(elisp) Strings and Characters")

String Functions Reference

Here's a complete list of string functions for reference. If you are a elisp beginner, ignore them.

(info "(elisp) Predicates-for-Strings")

(info "(elisp) Creating-Strings")

(info "(elisp) Modifying-Strings")

(info "(elisp) Text-Comparison")

(info "(elisp) Text-Comparison")

(info "(elisp) Case-Conversion")

(info "(elisp) Case-Tables")

Emacs Lisp String

Lisp Basics

Lisp Basics


Lisp Data Structure


Lisp Symbol

Lisp Misc

Working with Elisp