From 6d2896f5857feb78ad399b8167e50d970a9a5791 Mon Sep 17 00:00:00 2001 From: dkf Date: Mon, 7 Jul 2008 08:36:28 +0000 Subject: Correct examples. [Bug 1982642] --- ChangeLog | 4 ++++ doc/regexp.n | 28 +++++++++++++++++----------- doc/regsub.n | 17 ++++++++++++----- 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 + + * doc/regexp.n, doc/regsub.n: Correct examples. [Bug 1982642] + 2008-07-04 Joe English * 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)(\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} $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} $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} $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} $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} $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 -- cgit v0.12