summaryrefslogtreecommitdiffstats
path: root/doc/lsearch.n
diff options
context:
space:
mode:
Diffstat (limited to 'doc/lsearch.n')
-rw-r--r--doc/lsearch.n62
1 files changed, 40 insertions, 22 deletions
diff --git a/doc/lsearch.n b/doc/lsearch.n
index 21c8680..1d382f3 100644
--- a/doc/lsearch.n
+++ b/doc/lsearch.n
@@ -7,7 +7,7 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
-'\" RCS: @(#) $Id: lsearch.n,v 1.27 2007/09/02 22:37:41 dkf Exp $
+'\" RCS: @(#) $Id: lsearch.n,v 1.28 2007/10/25 09:25:27 dkf Exp $
'\"
.so man.macros
.TH lsearch n 8.5 Tcl "Tcl Built-In Commands"
@@ -18,7 +18,6 @@ lsearch \- See if a list contains a particular element
.SH SYNOPSIS
\fBlsearch \fR?\fIoptions\fR? \fIlist pattern\fR
.BE
-
.SH DESCRIPTION
.PP
This command searches the elements of \fIlist\fR to see if one
@@ -34,19 +33,23 @@ is \fB\-glob\fR. If more than one matching style is specified, the
last matching style given takes precedence.
.TP
\fB\-exact\fR
+.
\fIPattern\fR is a literal string that is compared for exact equality
against each list element.
.TP
\fB\-glob\fR
+.
\fIPattern\fR is a glob-style pattern which is matched against each list
element using the same rules as the \fBstring match\fR command.
.TP
\fB\-regexp\fR
+.
\fIPattern\fR is treated as a regular expression and matched against
each list element using the rules described in the \fBre_syntax\fR
reference page.
.TP
\fB\-sorted\fR
+.
The list elements are in sorted order. If this option is specified,
\fBlsearch\fR will use a more efficient searching algorithm to search
\fIlist\fR. If no other options are specified, \fIlist\fR is assumed
@@ -65,15 +68,18 @@ indices will be in numeric order. If values are returned, the order of the
values will be the order of those values within the input \fIlist\fR.
.TP
\fB\-inline\fR
+.
The matching value is returned instead of its index (or an empty
string if no value matches.) If \fB\-all\fR is also specified, then
the result of the command is the list of all values that matched.
.TP
\fB\-not\fR
+.
This negates the sense of the match, returning the index of the first
non-matching value in the list.
.TP
\fB\-start\fR\0\fIindex\fR
+.
The list is searched starting at position \fIindex\fR.
.VS 8.5
The interpretation of the \fIindex\fR value is the same as
@@ -87,10 +93,12 @@ and \fB\-sorted\fR options. If more than one is specified, the last
one takes precedence. The default is \fB\-ascii\fR.
.TP
\fB\-ascii\fR
+.
The list elements are to be examined as Unicode strings (the name is
for backward-compatibility reasons.)
.TP
\fB\-dictionary\fR
+.
The list elements are to be compared using dictionary-style
comparisons (see \fBlsort\fR for a fuller description). Note that this
only makes a meaningful difference from the \fB\-ascii\fR option when
@@ -98,16 +106,19 @@ the \fB\-sorted\fR option is given, because values are only
dictionary-equal when exactly equal.
.TP
\fB\-integer\fR
+.
The list elements are to be compared as integers.
.VS 8.5
.TP
\fB\-nocase\fR
+.
Causes comparisons to be handled in a case-insensitive manner. Has no
effect if combined with the \fB\-dictionary\fR, \fB\-integer\fR, or
\fB\-real\fR options.
.VE 8.5
.TP
\fB\-real\fR
+.
The list elements are to be compared as floating-point values.
.SS "SORTED LIST OPTIONS"
These options (only meaningful with the \fB\-sorted\fR option) specify
@@ -115,10 +126,12 @@ how the list is sorted. If more than one is given, the last one takes
precedence. The default option is \fB\-increasing\fR.
.TP
\fB\-decreasing\fR
+.
The list elements are sorted in decreasing order. This option is only
meaningful when used with \fB\-sorted\fR.
.TP
\fB\-increasing\fR
+.
The list elements are sorted in increasing order. This option is only
meaningful when used with \fB\-sorted\fR.
.SS "NESTED LIST OPTIONS"
@@ -127,12 +140,14 @@ These options are used to search lists of lists. They may be used
with any other options.
.TP
\fB\-index\fR\0\fIindexList\fR
+.
This option is designed for use when searching within nested lists.
The \fIindexList\fR argument gives a path of indices (much as might be
used with the \fBlindex\fR or \fBlset\fR commands) within each element
to allow the location of the term being matched against.
.TP
\fB\-subindices\fR
+.
If this option is given, the index result from this command (or every
index result when \fB\-all\fR is also specified) will be a complete
path (suitable for use with \fBlindex\fR or \fBlset\fR) within the
@@ -142,52 +157,55 @@ overall list to the term found. This option has no effect unless the
.SH EXAMPLES
Basic searching:
.CS
+.ta 2i
\fBlsearch\fR {a b c d e} c
- => 2
+ \fB\(->\fI 2\fR
\fBlsearch\fR -all {a b c a b c} c
- => 2 5
+ \fB\(->\fI 2 5\fR
.CE
-
+.PP
Using \fBlsearch\fR to filter lists:
.CS
+.ta 2i
\fBlsearch\fR -inline {a20 b35 c47} b*
- => b35
+ \fB\(->\fI b35\fR
\fBlsearch\fR -inline -not {a20 b35 c47} b*
- => a20
+ \fB\(->\fI a20\fR
\fBlsearch\fR -all -inline -not {a20 b35 c47} b*
- => a20 c47
+ \fB\(->\fI a20 c47\fR
\fBlsearch\fR -all -not {a20 b35 c47} b*
- => 0 2
+ \fB\(->\fI 0 2\fR
.CE
-This can even do a "set-like" removal operation:
+This can even do a
+.QW set-like
+removal operation:
.CS
+.ta 2i
\fBlsearch\fR -all -inline -not -exact {a b c a d e a f g a} a
- => b c d e f g
+ \fB\(->\fI b c d e f g\fR
.CE
-
+.PP
Searching may start part-way through the list:
.CS
+.ta 2i
\fBlsearch\fR -start 3 {a b c a b c} c
- => 5
+ \fB\(->\fI 5\fR
.CE
-
+.PP
It is also possible to search inside elements:
.CS
+.ta 2i
\fBlsearch\fR -index 1 -all -inline {{a abc} {b bcd} {c cde}} *bc*
- => {a abc} {b bcd}
+ \fB\(->\fI {a abc} {b bcd}\fR
.CE
-
.SH "SEE ALSO"
foreach(n), list(n), lappend(n), lindex(n), linsert(n), llength(n),
lset(n), lsort(n), lrange(n), lreplace(n),
.VS 8.5
string(n)
.VE
-
-
.SH KEYWORDS
list, match, pattern, regular expression, search, string
-
-'\" Local Variables:
-'\" mode: nroff
-'\" End:
+.\" Local Variables:
+.\" mode: nroff
+.\" End: