📄 ch26_01.htm
字号:
<HTML><!--Distributed by F --><HEAD><TITLE>[Chapter 26] Regular Expressions (Pattern Matching)</TITLE><METANAME="DC.title"CONTENT="UNIX Power Tools"><METANAME="DC.creator"CONTENT="Jerry Peek, Tim O'Reilly & Mike Loukides"><METANAME="DC.publisher"CONTENT="O'Reilly & Associates, Inc."><METANAME="DC.date"CONTENT="1998-08-04T21:43:38Z"><METANAME="DC.type"CONTENT="Text.Monograph"><METANAME="DC.format"CONTENT="text/html"SCHEME="MIME"><METANAME="DC.source"CONTENT="1-56592-260-3"SCHEME="ISBN"><METANAME="DC.language"CONTENT="en-US"><METANAME="generator"CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"><LINKREV="made"HREF="mailto:online-books@oreilly.com"TITLE="Online Books Comments"><LINKREL="up"HREF="part04.htm"TITLE="IV. Looking Inside Files "><LINKREL="prev"HREF="ch25_21.htm"TITLE="25.21 Numbering Lines "><LINKREL="next"HREF="ch26_02.htm"TITLE="26.2 Don't Confuse Regular Expressions with Wildcards "></HEAD><BODYBGCOLOR="#FFFFFF"TEXT="#000000"><DIVCLASS="htmlnav"><H1><IMGSRC="gifs/smbanner.gif"ALT="UNIX Power Tools"USEMAP="#srchmap"BORDER="0"></H1><MAPNAME="srchmap"><AREASHAPE="RECT"COORDS="0,0,466,58"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="467,0,514,18"HREF="jobjects/fsearch.htm"ALT="Search this book"></MAP><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch25_21.htm"TITLE="25.21 Numbering Lines "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 25.21 Numbering Lines "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><B><FONTFACE="ARIEL,HELVETICA,HELV,SANSERIF"SIZE="-1">Chapter 26</FONT></B></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch26_02.htm"TITLE="26.2 Don't Confuse Regular Expressions with Wildcards "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 26.2 Don't Confuse Regular Expressions with Wildcards "BORDER="0"></A></TD></TR></TABLE> <HRALIGN="LEFT"WIDTH="515"TITLE="footer"></DIV><DIVCLASS="CHAPTER"><H1CLASS="chapter"><ACLASS="title"NAME="UPT-CHP-26">26. Regular Expressions (Pattern Matching)</A></H1><DIVCLASS="htmltoc"><P><B>Contents:</B><BR><ACLASS="sect1"HREF="#UPT-ART-7844"TITLE="26.1 That's an Expression ">That's an Expression </A><BR><ACLASS="sect1"HREF="ch26_02.htm"TITLE="26.2 Don't Confuse Regular Expressions with Wildcards ">Don't Confuse Regular Expressions with Wildcards </A><BR><ACLASS="sect1"HREF="ch26_03.htm"TITLE="26.3 Understanding Expressions ">Understanding Expressions </A><BR><ACLASS="sect1"HREF="ch26_04.htm"TITLE="26.4 Using Metacharacters in Regular Expressions ">Using Metacharacters in Regular Expressions </A><BR><ACLASS="sect1"HREF="ch26_05.htm"TITLE="26.5 Getting Regular Expressions Right ">Getting Regular Expressions Right </A><BR><ACLASS="sect1"HREF="ch26_06.htm"TITLE="26.6 Just What Does a Regular Expression Match? ">Just What Does a Regular Expression Match? </A><BR><ACLASS="sect1"HREF="ch26_07.htm"TITLE="26.7 Limiting the Extent of a Match ">Limiting the Extent of a Match </A><BR><ACLASS="sect1"HREF="ch26_08.htm"TITLE="26.8 I Never Meta Character I Didn't Like ">I Never Meta Character I Didn't Like </A><BR><ACLASS="sect1"HREF="ch26_09.htm"TITLE="26.9 Valid Metacharacters for Different UNIX Programs ">Valid Metacharacters for Different UNIX Programs </A><BR><ACLASS="sect1"HREF="ch26_10.htm"TITLE="26.10 Pattern Matching Quick Reference with Examples ">Pattern Matching Quick Reference with Examples </A></P><P></P></DIV><DIVCLASS="sect1"><H2CLASS="sect1"><ACLASS="title"NAME="UPT-ART-7844">26.1 That's an Expression </A></H2><PCLASS="para"><ACLASS="indexterm"NAME="UPT-ART-7844-IX-REGULAR-EXPRESSIONS"></A>When my young daughter is struggling to understand the meaning of anidiomatic expression, such as, "Someone let the cat out of thebag," before I tell her what it means, I have to tell herthat it's an <EMCLASS="emphasis">expression</EM>, that she's not to interpret itliterally.(As a consequence, she also uses "That's just anexpression" to qualify her own remarks, especially when she is unsure about what she has just said.)</P><PCLASS="para">An expression, even in computer terminology, is not somethingto be interpreted literally.It is something that needs to beevaluated.</P><PCLASS="para">Many UNIX programs use a special "regular expression syntax" forspecifying what you could think of as "wildcard searches" throughfiles.Regular expressions describe patterns, or sequences ofcharacters, without necessarily specifying the characters literally.You'll also hear this process referred to as "pattern matching."</P><PCLASS="para">In this chapter, we depart a bit from the usual "tips and tricks"style of the book to provide an extended tutorial about regularexpressions in article <ACLASS="xref"HREF="ch26_04.htm"TITLE="Using Metacharacters in Regular Expressions ">26.4</A>.We did this because regular expressions are so important to many ofthe tips and tricks elsewhere in the book, and we wanted to make surethat they are covered thoroughly.</P><PCLASS="para">This tutorial article is accompanied by a few snippets of advice(articles <ACLASS="xref"HREF="ch26_05.htm"TITLE="Getting Regular Expressions Right ">26.5</A>and<ACLASS="xref"HREF="ch26_07.htm"TITLE="Limiting the Extent of a Match ">26.7</A>),anda few tools that help you see what your expressions are matching(article<ACLASS="xref"HREF="ch26_06.htm"TITLE="Just What Does a Regular Expression Match? ">26.6</A>).There's also a quick reference (article<ACLASS="xref"HREF="ch26_10.htm"TITLE="Pattern Matching Quick Reference with Examples ">26.10</A>)for those of you who just need a refresher.</P><PCLASS="para">For tips, tricks and tools that rely on an understanding of regularexpression syntax, you have only to look at:</P><ULCLASS="itemizedlist"><LICLASS="listitem"><PCLASS="para"><ACLASS="xref"HREF="ch27_01.htm"TITLE="Searching Through Files">Chapter 27, Searching Through Files</A>, <EMCLASS="emphasis">Searching Through Files</EM></P></LI><LICLASS="listitem"><PCLASS="para"><ACLASS="xref"HREF="ch30_01.htm"TITLE="vi Tips and Tricks">Chapter 30, vi Tips and Tricks</A>, <EMCLASS="emphasis">vi Tips and Tricks</EM></P></LI><LICLASS="listitem"><PCLASS="para"><ACLASS="xref"HREF="ch33_01.htm"TITLE="Batch Editing">Chapter 33, Batch Editing</A>, <EMCLASS="emphasis">Batch Editing</EM></P></LI><LICLASS="listitem"><PCLASS="para"><ACLASS="xref"HREF="ch34_01.htm"TITLE="The sed Stream Editor">Chapter 34, The sed Stream Editor</A>, <EMCLASS="emphasis">The sed Stream Editor</EM></P></LI><LICLASS="listitem"><PCLASS="para"><ACLASS="xref"HREF="ch37_01.htm"TITLE="Perl, a Pathologically Eclectic Rubbish Lister">Chapter 37, Perl, a Pathologically Eclectic Rubbish Lister</A>, <EMCLASS="emphasis">Perl, A Pathologically Eclectic Rubbish Lister</EM></P></LI></UL><PCLASS="para">O'Reilly's <EMCLASS="emphasis">Mastering Regular Expressions</EM>, by Jeffrey Friedl, is a gold mine ofexamples and specifics.<ACLASS="indexterm"NAME="AUTOID-28300"></A></P><DIVCLASS="sect1info"><PCLASS="SECT1INFO">- <SPANCLASS="authorinitials">DD</SPAN>, <SPANCLASS="authorinitials">TOR</SPAN> <SPANCLASS="bibliomisc">(Dale wrote the good part, in O'Reilly & Associates' <CITECLASS="citetitle">sed & awk</CITE>)</SPAN></P></DIV></DIV></DIV><DIVCLASS="htmlnav"><P></P><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch25_21.htm"TITLE="25.21 Numbering Lines "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 25.21 Numbering Lines "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="book"HREF="index.htm"TITLE="UNIX Power Tools"><IMGSRC="gifs/txthome.gif"SRC="gifs/txthome.gif"ALT="UNIX Power Tools"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch26_02.htm"TITLE="26.2 Don't Confuse Regular Expressions with Wildcards "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 26.2 Don't Confuse Regular Expressions with Wildcards "BORDER="0"></A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172">25.21 Numbering Lines </TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="index"HREF="index/idx_0.htm"TITLE="Book Index"><IMGSRC="gifs/index.gif"SRC="gifs/index.gif"ALT="Book Index"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172">26.2 Don't Confuse Regular Expressions with Wildcards </TD></TR></TABLE><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><IMGSRC="gifs/smnavbar.gif"SRC="gifs/smnavbar.gif"USEMAP="#map"BORDER="0"ALT="The UNIX CD Bookshelf Navigation"><MAPNAME="map"><AREASHAPE="RECT"COORDS="0,0,73,21"HREF="../index.htm"ALT="The UNIX CD Bookshelf"><AREASHAPE="RECT"COORDS="74,0,163,21"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="164,0,257,21"HREF="../unixnut/index.htm"ALT="UNIX in a Nutshell"><AREASHAPE="RECT"COORDS="258,0,321,21"HREF="../vi/index.htm"ALT="Learning the vi Editor"><AREASHAPE="RECT"COORDS="322,0,378,21"HREF="../sedawk/index.htm"ALT="sed & awk"><AREASHAPE="RECT"COORDS="379,0,438,21"HREF="../ksh/index.htm"ALT="Learning the Korn Shell"><AREASHAPE="RECT"COORDS="439,0,514,21"HREF="../lrnunix/index.htm"ALT="Learning the UNIX Operating System"></MAP></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -