Emacs Lisp: String Functions
Here is a complete list of string functions.
Basic String Functions
length
(length SEQUENCE)
Return the length of vector, list or string SEQUENCE.(length "abc") ;; 3
substring
(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
(concat &rest SEQUENCES)
Concatenate all the arguments and make the result a string.(concat "some" "thing")
split-string
(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
(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
-
(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
(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>"
See:
Trim String and Others
These are new in Emacs 24.4 (released 2014-10). To use them, you need to first:
(require 'subr-x)
string-blank-p
string-empty-p
string-join
string-reverse
string-trim-left
string-trim-right
string-trim
string-remove-prefix
string-remove-suffix
string-pad
(require 'subr-x) (string-trim " abc ")
String Functions Reference
Here's a complete list of string functions for reference. If you are a elisp beginner, ignore them.
stringp
string-or-null-p
char-or-string-p
(info "(elisp) Predicates-for-Strings")
make-string
string
→ chars to stringsubstring-no-properties
concat
- split-string-default-separators
(info "(elisp) Creating-Strings")
store-substring
→ modify stringclear-string
(info "(elisp) Modifying-Strings")
char-equal
string-equal
string-collate-equalp
string-greaterp
string-collate-lessp
string-version-lessp
string-prefix-p
string-suffix-p
compare-strings
string-distance
assoc-string
(info "(elisp) Text-Comparison")
number-to-string
string-to-number
char-to-string
string-to-char
concat
vconcat
→ string into a vectorappend
→ string into a listbyte-to-string
(info "(elisp) Text-Comparison")
downcase
upcase
capitalize
upcase-initials
(info "(elisp) Case-Conversion")
case-table-p
set-standard-case-table
standard-case-table
current-case-table
set-case-table
set-case-syntax-pair
set-case-syntax-delims
set-case-syntax
with-case-table
- ascii-case-table
describe-buffer-case-table