Mastering Regular Expressions (2nd Edition) [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Mastering Regular Expressions (2nd Edition) [Electronic resources] - نسخه متنی

Jeffrey E. F. Friedl

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










1.1 Solving Real Problems


Knowing how to wield regular expressions unleashes processing powers you
might not even know were available. Numerous times in any given day, regular
expressions help me solve problems both large and small (and quite often, ones
that are small but would be large if not for regular expressions).

Showing an example that provides the key to solving a large and important problem
illustrates the benefit of regular expressions clearly, but perhaps not so obvious
is the way regular expressions can be used throughout the day to solve rather
"uninteresting" problems. I use "uninteresting" in the sense that such problems are
not often the subject of bar-room war stories, but quite interesting in that until
they're solved, you can't get on with your real work.

As a simple example, I needed to check a lot of files (the 70 or so files comprising
the source for this book, actually) to confirm that each file contained 'SetSize'
exactly as often (or as rarely) as it contained 'ResetSize'. To complicate matters, I
needed to disregard capitalization (such that, for example, 'setSIZE' would be
counted just the same as 'SetSize'). Inspecting the 32,000 lines of text by hand
certainly wasn't practical.

Even using the normal "find this word" search in an editor would have been arduous,
especially with all the files and all the possible capitalization differences.

Regular expressions to the rescue! Typing just a single, short command, I was able to check all files and confirm what I needed to know. Total elapsed time: perhaps
15 seconds to type the command, and another 2 seconds for the actual check of
all the data. Wow! (If you're interested to see what I actually used, peek ahead to
Section 2.1.)

As another example, I was once helping a friend with some email problems on a
remote machine, and he wanted me to send a listing of messages in his mailbox
file. I could have loaded a copy of the whole file into a text editor and manually
removed all but the few header lines from each message, leaving a sort of table of
contents. Even if the file wasn't as huge as it was, and even if I wasn't connected
via a slow dial-up line, the task would have been slow and monotonous. Also, I
would have been placed in the uncomfortable position of actually seeing the text
of his personal mail.

Regular expressions to the rescue again! I gave a simple command (using the common
search tool egrep described later in this chapter) to display the From: and
Subject: line from each message. To tell egrep exactly which kinds of lines I
wanted to see, I used the regular expression
^(From|Subject):
.

Once he got his list, he asked me to send a particular (5,000-line!) message. Again,
using a text editor or the mail system itself to extract just the one message would
have taken a long time. Rather, I used another tool (one called sed ) and again
used regular expressions to describe exactly the text in the file I wanted. This way,
I could extract and send the desired message quickly and easily.

Saving both of us a lot of time and aggravation by using the regular expression
was not "exciting," but surely much more exciting than wasting an hour in the text
editor. Had I not known regular expressions, I would have never considered that
there was an alternative. So, to a fair extent, this story is representative of how
regular expressions and associated tools can empower you to do things you might
have never thought you wanted to do.

Once you learn regular expressions, you'll realize that they're an invaluable part of
your toolkit, and you'll wonder how you could ever have gotten by without them.
[1]

[1] If you have a TiVo, you already know the feeling!


A full command of regular expressions is an invaluable skill. This book provides
the information needed to acquire that skill, and it is my hope that it provides the
motivation to do so, as well.


/ 83