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

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

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

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

Jeffrey E. F. Friedl

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

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

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










Chapter 3. Overview of Regular Expression Features and Flavors


Now that you have a feel for regular expressions and a few diverse tools that use
them, you might think we're ready to dive into using them wherever they're
found. But even a simple comparison among the egrep versions of the first chapter
and the Perl and Java in the previous chapter shows that regular expressions and
the way they're used can vary wildly from tool to tool.

When looking at regular expressions in the context of their host language or tool,
there are three broad issues to consider:

What metacharacters are supported, and their meaning. Often called the regex
"flavor."

How regular expressions "interface" with the language or tool, such as how to
specify regular-expression operations, what operations are allowed, and what
text they operate on.

How the regular-expression engine actually goes about applying a regular
expression to some text. The method that the language or tool designer uses
to implement the regular-expression engine has a strong influence on the
results one might expect from any given regular expression.


Regular Expressions and Cars

The considerations just listed parallel the way one might think while shopping for
a car. With regular expressions, the metacharacters are the first thing you notice,
just as with a car it's the body shape, shine, and nifty features like a CD player and
leather seats. These are the types of things you'll find splashed across the pages of
a glossy brochure, and a list of metacharacters like the one in Section 1.5.6 is the regular-expression equivalent. It's important information, but only part of the story.

How regular expressions interface with their host program is also important. The
interface is partly cosmetic, as in the syntax of how to actually provide a regular
expression to the program. Other parts of the interface are more functional, defining
what operations are supported, and how convenient they are to use. In our car
comparison, this would be how the car "interfaces" with us and our lives. Some
issues might be cosmetic, such as what side of the car you put gas in, or whether
the windows are powered. Others might be a bit more important, such as if it has
an automatic or manual transmission. Still others deal with functionality: can you
fit the thing in your garage? Can you transport a king-size mattress? Skis? Five
adults? (And how easy is it for those five adults to get in and out of the careasier
with four doors than with two.) Many of these issues are also mentioned in the
glossy brochure, although you might have to read the small print in the back to
get all the details.

The final concern is about the engine, and how it goes about its work to turn the
wheels. Here is where the analogy ends, because with cars, people tend to understand
at least the minimum required about an engine to use it well: if it's a gasoline
engine, they won't put diesel fuel into it. And if it has a manual transmission,
they won't forget to use the clutch. But, in the regular-expression world, even the
most minute details about how the regex engine goes about its work, and how
that influences how expressions should be crafted and used, are usually absent
from the documentation. However, these details are so important to the practical
use of regular expressions that the entire next chapter is devoted to it.

In This Chapter

As the title might suggest, this chapter provides an overview of regular expression
features and flavors. It looks at the types of metacharacters commonly available,
and some of the ways regular expressions interface with the tools they're part of.
These are the first two points mentioned at the chapter's opening. The third point
how a regex engine goes about its work, and what that means to us in a practical
senseis covered in the next few chapters.

One thing I should say about this chapter is that it does not try to provide a reference
for any particular tool's regex features, nor does it teach how to use regexes
in any of the various tools and languages mentioned as examples. Rather, it
attempts to provide a global perspective on regular expressions and the tools that
implement them. If you lived in a cave using only one particular tool, you could
live your life without caring about how other tools (or other versions of the same
tool) might act differently. Since that's not the case, knowing something about
your utility's computational pedigree adds interesting and valuable insight.


/ 83