summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--doc/regexp.n28
-rw-r--r--doc/regsub.n17
3 files changed, 33 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index f330230..058c2ae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-07-07 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+
+ * doc/regexp.n, doc/regsub.n: Correct examples. [Bug 1982642]
+
2008-07-04 Joe English <jenglish@users.sourceforge.net>
* generic/tclEncoding.c(UtfToUtfProc): Avoid unwanted sign extension
diff --git a/doc/regexp.n b/doc/regexp.n
index ad3a46f..2c18183 100644
--- a/doc/regexp.n
+++ b/doc/regexp.n
@@ -4,7 +4,7 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
-'\" RCS: @(#) $Id: regexp.n,v 1.28 2007/12/13 15:22:33 dgp Exp $
+'\" RCS: @(#) $Id: regexp.n,v 1.28.2.1 2008/07/07 08:36:30 dkf Exp $
'\"
.so man.macros
.TH regexp n 8.3 Tcl "Tcl Built-In Commands"
@@ -149,39 +149,45 @@ portion of the expression that was not matched), then the corresponding
.QW "\fB\-1 \-1\fR"
if \fB\-indices\fR has been specified or to an empty string otherwise.
.SH EXAMPLES
+.PP
Find the first occurrence of a word starting with \fBfoo\fR in a
string that is not actually an instance of \fBfoobar\fR, and get the
letters following it up to the end of the word into a variable:
.CS
-\fBregexp\fR {\e<foo(?!bar\e>)(\ew*)} $string \-> restOfWord
+\fBregexp\fR {\emfoo(?!bar\eM)(\ew*)} $string \-> restOfWord
.CE
Note that the whole matched substring has been placed in the variable
-\fB\->\fR which is a name chosen to look nice given that we are not
+.QW \fB\->\fR ,
+which is a name chosen to look nice given that we are not
actually interested in its contents.
.PP
Find the index of the word \fBbadger\fR (in any case) within a string
and store that in the variable \fBlocation\fR:
.CS
-\fBregexp\fR \-indices {(?i)\e<badger\e>} $string location
+\fBregexp\fR \-indices {(?i)\embadger\eM} $string location
+.CE
+This could also be written as a \fIbasic\fR regular expression (as opposed
+to using the default syntax of \fIadvanced\fR regular expressions) match by
+prefixing the expression with a suitable flag:
+.CS
+\fBregexp\fR \-indices {(?ib)\e<badger\e>} $string location
.CE
.PP
-Count the number of octal digits in a string:
+This counts the number of octal digits in a string:
.CS
\fBregexp\fR \-all {[0\-7]} $string
.CE
.PP
-List all words (consisting of all sequences of non-whitespace
-characters) in a string:
+This lists all words (consisting of all sequences of non-whitespace
+characters) in a string, and is useful as a more powerful version of the
+\fBsplit\fR command:
.CS
\fBregexp\fR \-all \-inline {\eS+} $string
.CE
-
.SH "SEE ALSO"
re_syntax(n), regsub(n),
.VS 8.5
string(n)
.VE
-
-
.SH KEYWORDS
-match, regular expression, string
+match, parsing, pattern, regular expression, splitting, string
diff --git a/doc/regsub.n b/doc/regsub.n
index ca16aa8..413a6ab 100644
--- a/doc/regsub.n
+++ b/doc/regsub.n
@@ -6,7 +6,7 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
-'\" RCS: @(#) $Id: regsub.n,v 1.22 2007/12/13 15:22:33 dgp Exp $
+'\" RCS: @(#) $Id: regsub.n,v 1.22.2.1 2008/07/07 08:36:30 dkf Exp $
'\"
.so man.macros
.TH regsub n 8.3 Tcl "Tcl Built-In Commands"
@@ -139,23 +139,30 @@ string after replacement is returned.
See the manual entry for \fBregexp\fR for details on the interpretation
of regular expressions.
.SH EXAMPLES
+.PP
Replace (in the string in variable \fIstring\fR) every instance of
\fBfoo\fR which is a word by itself with \fBbar\fR:
.CS
-\fBregsub\fR -all {\e<foo\e>} $string bar string
+\fBregsub\fR -all {\emfoo\eM} $string bar string
+.CE
+or (using the
+.QW "basic regular expression"
+syntax):
+.CS
+\fBregsub\fR -all {(?b)\e<foo\e>} $string bar string
.CE
.PP
Insert double-quotes around the first instance of the word
\fBinteresting\fR, however it is capitalized.
.CS
-\fBregsub\fR -nocase {\e<interesting\e>} $string {"&"} string
+\fBregsub\fR -nocase {\eyinteresting\ey} $string {"&"} string
.CE
.PP
Convert all non-ASCII and Tcl-significant characters into \eu escape
sequences by using \fBregsub\fR and \fBsubst\fR in combination:
.CS
# This RE is just a character class for everything "bad"
-set RE {[][{};#\e\e\e$\es\eu0100-\euffff]}
+set RE {[][{};#\e\e\e$\es\eu0080-\euffff]}
# We will substitute with a fragment of Tcl script in brackets
set substitution {[format \e\e\e\eu%04x [scan "\e\e&" %c]]}
@@ -170,4 +177,4 @@ regexp(n), re_syntax(n), subst(n),
string(n)
.VE
.SH KEYWORDS
-match, pattern, regular expression, substitute
+match, pattern, quoting, regular expression, substitute