Mercurial > emacs
changeset 69340:704ddb133dad
(Regexps): More accurately describe which characters are special in
which situations. Recommend _not_ to quote `]' or `-' when they are
not special.
author | Luc Teirlinck <teirllm@auburn.edu> |
---|---|
date | Thu, 09 Mar 2006 02:03:20 +0000 |
parents | 4ad8f50b69f2 |
children | c82e57732b5b |
files | man/search.texi |
diffstat | 1 files changed, 15 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/man/search.texi Thu Mar 09 02:01:44 2006 +0000 +++ b/man/search.texi Thu Mar 09 02:03:20 2006 +0000 @@ -498,11 +498,13 @@ special constructs and the rest are @dfn{ordinary}. An ordinary character is a simple regular expression which matches that same character and nothing else. The special characters are @samp{$}, -@samp{^}, @samp{.}, @samp{*}, @samp{+}, @samp{?}, @samp{[}, @samp{]} and -@samp{\}. Any other character appearing in a regular expression is -ordinary, unless a @samp{\} precedes it. (When you use regular -expressions in a Lisp program, each @samp{\} must be doubled, see the -example near the end of this section.) +@samp{^}, @samp{.}, @samp{*}, @samp{+}, @samp{?}, @samp{[}, and +@samp{\}. The character @samp{]} is special if it ends a character +alternative (see later). The character @samp{-} is special inside a +character alternative. Any other character appearing in a regular +expression is ordinary, unless a @samp{\} precedes it. (When you use +regular expressions in a Lisp program, each @samp{\} must be doubled, +see the example near the end of this section.) For example, @samp{f} is not a special character, so it is ordinary, and therefore @samp{f} is a regular expression that matches the string @@ -682,6 +684,14 @@ to depend on this behavior; it is better to quote the special character anyway, regardless of where it appears. +As a @samp{\} is not special inside a character alternative, it can +never remove the special meaning of @samp{-} or @samp{]}. So you +should not quote these characters when they have no special meaning +either. This would not clarify anything, since backslashes can +legitimately precede these characters where they @emph{have} special +meaning, as in @code{[^\]} (@code{"[^\\]"} for Lisp string syntax), +which matches any single character except a backslash. + @node Regexp Backslash @section Backslash in Regular Expressions