Arguments

Values

pos

A non-negative integer or
nil
.

len

A non-negative integer or
nil
.

Description

The function
find-regexp-in-string
searches the string
string
for a match for the regular expression
pattern
. The index in
string
of the start of the first match is returned in
pos
, and the length of the match is
len
.

If
from-end
is
nil
(the default value) then the search starts at index
start
and ends at index
end
.
start
defaults to 0 and
end
defaults to
nil
. If
from-end
is true, then the search direction is reversed.

pattern
should be a precompiled regular expression object or a string. If
pattern
is a string then
find-regexp-in-string
first makes a precompiled regular expression object. This operation allocates, therefore if you need to repeatedly call
find-regexp-in-string
with the same pattern, it is better to call precompile-regexp once and pass its result, a precompiled regular expression object, as
pattern
.

case-sensitive
controls whether a string
pattern
is precompiled as a case sensitive or case insensitive search. A true value other than
:default
means a case sensitive search. The value
nil
means a case insensitive search. The default value of
case-sensitive
is
:default
which means that a string
pattern
is compiled with case sensitivity acording to the value of the Editor variable
DEFAULT-SEARCH-KIND
.

The regular expression syntax used by
find-regexp-in-string
is similar to that used by Emacs, as described in the "Regular expression syntax" section of the
LispWorks Editor User Guide
.

Example

This form allocates several regular expression objects:

(loop with pos = 0

with len = 0

while pos

do (multiple-value-setq (pos len)

(find-regexp-in-string "[0,2,4,6,8]" "0123456789"

:start (+ pos len)))

when pos

do (format t "~&Match at pos ~D len ~D~%"

pos len))

This form does the same matching but allocates just one precompiled regular expression object: