Next: String Conversion, Previous: Modifying Strings, Up: Strings and Characters
This function returns
t
if the arguments represent the same character,nil
otherwise. This function ignores differences in case ifcase-fold-search
is non-nil
.(char-equal ?x ?x) => t (let ((case-fold-search nil)) (char-equal ?x ?X)) => nil
This function returns
t
if the characters of the two strings match exactly. Case is always significant, regardless ofcase-fold-search
.(string= "abc" "abc") => t (string= "abc" "ABC") => nil (string= "ab" "ABC") => nilThe function
string=
ignores the text properties of the two strings. Whenequal
(see Equality Predicates) compares two strings, it usesstring=
.If the strings contain non-ascii characters, and one is unibyte while the other is multibyte, then they cannot be equal. See Text Representations.
This function compares two strings a character at a time. It scans both the strings at the same time to find the first pair of corresponding characters that do not match. If the lesser character of these two is the character from string1, then string1 is less, and this function returns
t
. If the lesser character is the one from string2, then string1 is greater, and this function returnsnil
. If the two strings match entirely, the value isnil
.Pairs of characters are compared according to their character codes. Keep in mind that lower case letters have higher numeric values in the ascii character set than their upper case counterparts; digits and many punctuation characters have a lower numeric value than upper case letters. An ascii character is less than any non-ascii character; a unibyte non-ascii character is always less than any multibyte non-ascii character (see Text Representations).
(string< "abc" "abd") => t (string< "abd" "abc") => nil (string< "123" "abc") => tWhen the strings have different lengths, and they match up to the length of string1, then the result is
t
. If they match up to the length of string2, the result isnil
. A string of no characters is less than any other string.(string< "" "abc") => t (string< "ab" "abc") => t (string< "abc" "") => nil (string< "abc" "ab") => nil (string< "" "") => nil
This function compares the specified part of string1 with the specified part of string2. The specified part of string1 runs from index start1 up to index end1 (
nil
means the end of the string). The specified part of string2 runs from index start2 up to index end2 (nil
means the end of the string).The strings are both converted to multibyte for the comparison (see Text Representations) so that a unibyte string can be equal to a multibyte string. If ignore-case is non-
nil
, then case is ignored, so that upper case letters can be equal to lower case letters.If the specified portions of the two strings match, the value is
t
. Otherwise, the value is an integer which indicates how many leading characters agree, and which string is less. Its absolute value is one plus the number of characters that agree at the beginning of the two strings. The sign is negative if string1 (or its specified portion) is less.
This function works like
assoc
, except that key must be a string, and comparison is done usingcompare-strings
, ignoring case differences. See Association Lists.
This function works like
assoc
, except that key must be a string, and comparison is done usingcompare-strings
. Case differences are significant.
See also compare-buffer-substrings
in Comparing Text, for
a way to compare text in buffers. The function string-match
,
which matches a regular expression against a string, can be used
for a kind of string comparison; see Regexp Search.