Next: Regular Expressions, Previous: Strings, Up: Strings [Contents][Index]
This section describes procedures for searching a string, either for a character or a substring, and matching two strings to one another.
The arguments pattern and string must satisfy
string-in-nfc?
.
Searches string for the leftmost occurrence of the substring
pattern. If successful, the index of the first character of the
matched substring is returned; otherwise, #f
is returned.
(string-search-forward "rat" "pirate") ⇒ 2 (string-search-forward "rat" "pirate rating") ⇒ 2 (string-search-forward "rat" "pirate rating" 4 13) ⇒ 7 (string-search-forward "rat" "pirate rating" 9 13) ⇒ #f
The arguments pattern and string must satisfy
string-in-nfc?
.
Searches string for the rightmost occurrence of the substring
pattern. If successful, the index to the right of the last
character of the matched substring is returned; otherwise, #f
is returned.
(string-search-backward "rat" "pirate") ⇒ 5 (string-search-backward "rat" "pirate rating") ⇒ 10 (string-search-backward "rat" "pirate rating" 1 8) ⇒ 5 (string-search-backward "rat" "pirate rating" 9 13) ⇒ #f
The arguments pattern and string must satisfy
string-in-nfc?
.
Searches string to find all occurrences of the substring pattern. Returns a list of the occurrences; each element of the list is an index pointing to the first character of an occurrence.
(string-search-all "rat" "pirate") ⇒ (2) (string-search-all "rat" "pirate rating") ⇒ (2 7) (string-search-all "rat" "pirate rating" 4 13) ⇒ (7) (string-search-all "rat" "pirate rating" 9 13) ⇒ ()
Searches string to see if it contains the substring
pattern. Returns #t
if pattern is a substring of
string, otherwise returns #f
.
(substring? "rat" "pirate") ⇒ #t (substring? "rat" "outrage") ⇒ #f (substring? "" any-string) ⇒ #t (if (substring? "moon" text) (process-lunar text) 'no-moon)
Each string must satisfy string-in-nfc?
, and proc
must accept as many arguments as there are strings.
These procedures apply proc element-wise to the elements of the
strings and return the first or last index for which proc
returns a true value. If there is no such index, then #f
is
returned.
If more than one string is given and not all strings have the same length, then only the indexes of the shortest string are tested.
The argument string must satisfy string-in-nfc?
.
These procedures search string for a matching character,
starting from start and moving forwards to end. If there
is a matching character, the procedures stop the search and return the
index of that character. If there is no matching character, the
procedures return #f
.
The procedures differ only in how they match characters:
string-find-next-char
matches a character that is char=?
to char; string-find-next-char-ci
matches a character
that is char-ci=?
to char; and
string-find-next-char-in-set
matches a character that’s a
member of char-set.
(string-find-next-char "Adam" #\A) ⇒ 0 (string-find-next-char "Adam" #\A 1 4) ⇒ #f (string-find-next-char-ci "Adam" #\A 1 4) ⇒ 2 (string-find-next-char-in-set my-string char-set:alphabetic) ⇒ start position of the first word in my-string ; Can be used as a predicate: (if (string-find-next-char-in-set my-string (char-set #\( #\) )) 'contains-parentheses 'no-parentheses)
The argument string must satisfy string-in-nfc?
.
These procedures search string for a matching character,
starting from end and moving backwards to start. If there
is a matching character, the procedures stop the search and return the
index of that character. If there is no matching character, the
procedures return #f
.
The procedures differ only in how they match characters:
string-find-previous-char
matches a character that is
char=?
to char; string-find-previous-char-ci
matches a character that is char-ci=?
to char; and
string-find-previous-char-in-set
matches a character that’s a
member of char-set.
The arguments string1 and string2 must satisfy
string-in-nfc?
.
Compares the two strings, starting from the beginning, and returns the number of characters that are the same. If the two strings start differently, returns 0.
(string-match-forward "mirror" "micro") ⇒ 2 ; matches "mi" (string-match-forward "a" "b") ⇒ 0 ; no match
The arguments string1 and string2 must satisfy
string-in-nfc?
.
Compares the two strings, starting from the end and matching toward the front, returning the number of characters that are the same. If the two strings end differently, returns 0.
(string-match-backward "bulbous" "fractious")
⇒ 3 ; matches "ous"
These procedures return #t
if the first string forms the prefix
of the second; otherwise returns #f
. The -ci
procedures
don’t distinguish uppercase and lowercase letters.
(string-prefix? "abc" "abcdef") ⇒ #t (string-prefix? "" any-string) ⇒ #t
These procedures return #t
if the first string forms the suffix
of the second; otherwise returns #f
. The -ci
procedures
don’t distinguish uppercase and lowercase letters.
(string-suffix? "ous" "bulbous") ⇒ #t (string-suffix? "" any-string) ⇒ #t
Next: Regular Expressions, Previous: Strings, Up: Strings [Contents][Index]