CVSROOT: /webcvs/grep Module name: grep Changes by: Jim Meyering <meyering> 16/02/05 00:44:53
Index: html_node/Fundamental-Structure.html =================================================================== RCS file: /webcvs/grep/grep/manual/html_node/Fundamental-Structure.html,v retrieving revision 1.21 retrieving revision 1.22 diff -u -b -r1.21 -r1.22 --- html_node/Fundamental-Structure.html 2 Nov 2015 02:54:33 -0000 1.21 +++ html_node/Fundamental-Structure.html 5 Feb 2016 00:44:51 -0000 1.22 @@ -1,49 +1,73 @@ -<html lang="en"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- This manual is for grep, a pattern matching engine. + +Copyright (C) 1999-2002, 2005, 2008-2016 Free Software Foundation, +Inc. + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with no +Invariant Sections, with no Front-Cover Texts, and with no Back-Cover +Texts. A copy of the license is included in the section entitled +"GNU Free Documentation License". --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> <head> -<title>Fundamental Structure - GNU Grep 2.22</title> +<title>GNU Grep 2.23: Fundamental Structure</title> + +<meta name="description" content="GNU Grep 2.23: Fundamental Structure"> +<meta name="keywords" content="GNU Grep 2.23: Fundamental Structure"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<meta name="description" content="GNU Grep 2.22"> -<meta name="generator" content="makeinfo 4.13"> -<link title="Top" rel="start" href="index.html#Top"> -<link rel="up" href="Regular-Expressions.html#Regular-Expressions" title="Regular Expressions"> -<link rel="next" href="Character-Classes-and-Bracket-Expressions.html#Character-Classes-and-Bracket-Expressions" title="Character Classes and Bracket Expressions"> -<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Regular-Expressions.html#Regular-Expressions" rel="up" title="Regular Expressions"> +<link href="Character-Classes-and-Bracket-Expressions.html#Character-Classes-and-Bracket-Expressions" rel="next" title="Character Classes and Bracket Expressions"> +<link href="Regular-Expressions.html#Regular-Expressions" rel="prev" title="Regular Expressions"> +<style type="text/css"> <!-- -This manual is for `grep', a pattern matching engine. +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> +<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css"> -Copyright (C) 1999-2002, 2005, 2008-2015 Free Software Foundation, -Inc. - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.3 or any later version published by the Free Software - Foundation; with no Invariant Sections, with no Front-Cover Texts, - and with no Back-Cover Texts. A copy of the license is included - in the section entitled ``GNU Free Documentation License''. - --> -<meta http-equiv="Content-Style-Type" content="text/css"> -<style type="text/css"><!-- - pre.display { font-family:inherit } - pre.format { font-family:inherit } - pre.smalldisplay { font-family:inherit; font-size:smaller } - pre.smallformat { font-family:inherit; font-size:smaller } - pre.smallexample { font-size:smaller } - pre.smalllisp { font-size:smaller } - span.sc { font-variant:small-caps } - span.roman { font-family:serif; font-weight:normal; } - span.sansserif { font-family:sans-serif; font-weight:normal; } ---></style> -<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css"> </head> -<body> -<div class="node"> + +<body lang="en"> <a name="Fundamental-Structure"></a> +<div class="header"> <p> -Next: <a rel="next" accesskey="n" href="Character-Classes-and-Bracket-Expressions.html#Character-Classes-and-Bracket-Expressions">Character Classes and Bracket Expressions</a>, -Up: <a rel="up" accesskey="u" href="Regular-Expressions.html#Regular-Expressions">Regular Expressions</a> -<hr> +Next: <a href="Character-Classes-and-Bracket-Expressions.html#Character-Classes-and-Bracket-Expressions" accesskey="n" rel="next">Character Classes and Bracket Expressions</a>, Up: <a href="Regular-Expressions.html#Regular-Expressions" accesskey="u" rel="up">Regular Expressions</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> </div> - +<hr> +<a name="Fundamental-Structure-1"></a> <h3 class="section">3.1 Fundamental Structure</h3> <p>The fundamental building blocks are the regular expressions that match @@ -52,46 +76,94 @@ are regular expressions that match themselves. Any meta-character with special meaning may be quoted by preceding it with a backslash. - - <p>A regular expression may be followed by one of several +</p> +<p>A regular expression may be followed by one of several repetition operators: - - <dl> -<dt>‘<samp><span class="samp">.</span></samp>’<dd><a name="index-g_t_002e-193"></a><a name="index-dot-194"></a><a name="index-period-195"></a>The period ‘<samp><span class="samp">.</span></samp>’ matches any single character. - - <br><dt>‘<samp><span class="samp">?</span></samp>’<dd><a name="index-g_t_003f-196"></a><a name="index-question-mark-197"></a><a name="index-match-expression-at-most-once-198"></a>The preceding item is optional and will be matched at most once. - - <br><dt>‘<samp><span class="samp">*</span></samp>’<dd><a name="index-g_t_002a-199"></a><a name="index-asterisk-200"></a><a name="index-match-expression-zero-or-more-times-201"></a>The preceding item will be matched zero or more times. - - <br><dt>‘<samp><span class="samp">+</span></samp>’<dd><a name="index-g_t_002b-202"></a><a name="index-plus-sign-203"></a><a name="index-match-expression-one-or-more-times-204"></a>The preceding item will be matched one or more times. - - <br><dt>‘<samp><span class="samp">{</span><var>n</var><span class="samp">}</span></samp>’<dd><a name="index-g_t_0040_007b_0040var_007bn_007d_0040_007d-205"></a><a name="index-braces_002c-one-argument-206"></a><a name="index-match-expression-_0040var_007bn_007d-times-207"></a>The preceding item is matched exactly <var>n</var> times. - - <br><dt>‘<samp><span class="samp">{</span><var>n</var><span class="samp">,}</span></samp>’<dd><a name="index-g_t_0040_007b_0040var_007bn_007d_002c_0040_007d-208"></a><a name="index-braces_002c-second-argument-omitted-209"></a><a name="index-match-expression-_0040var_007bn_007d-or-more-times-210"></a>The preceding item is matched <var>n</var> or more times. - - <br><dt>‘<samp><span class="samp">{,</span><var>m</var><span class="samp">}</span></samp>’<dd><a name="index-g_t_0040_007b_002c_0040var_007bm_007d_0040_007d-211"></a><a name="index-braces_002c-first-argument-omitted-212"></a><a name="index-match-expression-at-most-_0040var_007bm_007d-times-213"></a>The preceding item is matched at most <var>m</var> times. +</p> +<dl compact="compact"> +<dt>‘<samp>.</samp>’</dt> +<dd><a name="index-_002e"></a> +<a name="index-dot"></a> +<a name="index-period"></a> +<p>The period ‘<samp>.</samp>’ matches any single character. +</p> +</dd> +<dt>‘<samp>?</samp>’</dt> +<dd><a name="index-_003f"></a> +<a name="index-question-mark"></a> +<a name="index-match-expression-at-most-once"></a> +<p>The preceding item is optional and will be matched at most once. +</p> +</dd> +<dt>‘<samp>*</samp>’</dt> +<dd><a name="index-_002a"></a> +<a name="index-asterisk"></a> +<a name="index-match-expression-zero-or-more-times"></a> +<p>The preceding item will be matched zero or more times. +</p> +</dd> +<dt>‘<samp>+</samp>’</dt> +<dd><a name="index-_002b"></a> +<a name="index-plus-sign"></a> +<a name="index-match-expression-one-or-more-times"></a> +<p>The preceding item will be matched one or more times. +</p> +</dd> +<dt>‘<samp>{<var>n</var>}</samp>’</dt> +<dd><a name="index-_007bn_007d"></a> +<a name="index-braces_002c-one-argument"></a> +<a name="index-match-expression-n-times"></a> +<p>The preceding item is matched exactly <var>n</var> times. +</p> +</dd> +<dt>‘<samp>{<var>n</var>,}</samp>’</dt> +<dd><a name="index-_007bn_002c_007d"></a> +<a name="index-braces_002c-second-argument-omitted"></a> +<a name="index-match-expression-n-or-more-times"></a> +<p>The preceding item is matched <var>n</var> or more times. +</p> +</dd> +<dt>‘<samp>{,<var>m</var>}</samp>’</dt> +<dd><a name="index-_007b_002cm_007d"></a> +<a name="index-braces_002c-first-argument-omitted"></a> +<a name="index-match-expression-at-most-m-times"></a> +<p>The preceding item is matched at most <var>m</var> times. This is a GNU extension. - - <br><dt>‘<samp><span class="samp">{</span><var>n</var><span class="samp">,</span><var>m</var><span class="samp">}</span></samp>’<dd><a name="index-g_t_0040_007b_0040var_007bn_007d_002c_0040var_007bm_007d_0040_007d-214"></a><a name="index-braces_002c-two-arguments-215"></a><a name="index-match-expression-from-_0040var_007bn_007d-to-_0040var_007bm_007d-times-216"></a>The preceding item is matched at least <var>n</var> times, but not more than +</p> +</dd> +<dt>‘<samp>{<var>n</var>,<var>m</var>}</samp>’</dt> +<dd><a name="index-_007bn_002cm_007d"></a> +<a name="index-braces_002c-two-arguments"></a> +<a name="index-match-expression-from-n-to-m-times"></a> +<p>The preceding item is matched at least <var>n</var> times, but not more than <var>m</var> times. +</p> +</dd> +</dl> - </dl> - - <p>The empty regular expression matches the empty string. +<p>The empty regular expression matches the empty string. Two regular expressions may be concatenated; the resulting regular expression matches any string formed by concatenating two substrings that respectively match the concatenated expressions. - - <p>Two regular expressions may be joined by the infix operator ‘<samp><span class="samp">|</span></samp>’; +</p> +<p>Two regular expressions may be joined by the infix operator ‘<samp>|</samp>’; the resulting regular expression matches any string matching either alternate expression. - - <p>Repetition takes precedence over concatenation, +</p> +<p>Repetition takes precedence over concatenation, which in turn takes precedence over alternation. A whole expression may be enclosed in parentheses to override these precedence rules and form a subexpression. -An unmatched ‘<samp><span class="samp">)</span></samp>’ matches just itself. +An unmatched ‘<samp>)</samp>’ matches just itself. +</p> +<hr> +<div class="header"> +<p> +Next: <a href="Character-Classes-and-Bracket-Expressions.html#Character-Classes-and-Bracket-Expressions" accesskey="n" rel="next">Character Classes and Bracket Expressions</a>, Up: <a href="Regular-Expressions.html#Regular-Expressions" accesskey="u" rel="up">Regular Expressions</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + - </body></html> +</body> +</html>
