Regular Expressions

 < Day Day Up > 

Perl's greatest strength is in text and file manipulation, which is accomplished by using the regular expression (regex) library. Regexes, which are quite different from the wildcard handling and filename expansion capabilities of the shell (see Chapter 14), allow complicated pattern matching and replacement to be done efficiently and easily.

For example, the following line of code replaces every occurrence of the string bob or the string mary with fred in a line of text:

 $string =~ s/bob|mary/fred/gi; 

Without going into too many of the details, Table 29.7 explains what the preceding line says.

Table 29.7. Explanation of $string =~ s/bob|mary/fred/gi;

Element

Explanation

$string =~

Performs this pattern match on the text found in the variable called $string.

s

Substitute.

/

Begins the text to be matched.

bob|mary

Matches the text bob or mary. You should remember that it is looking for the text mary, not the word mary; that is, it will also match the text mary in the word maryland.

/

Ends text to be matched; begins text to replace it.

fred

Replaces anything that was matched with the text fred.

/

Ends replace text.

g

Does this substitution globally; that is, replaces the match text wherever in the string you match it (and any number of times).

i

The search text is not case sensitive. It matches bob, Bob, or bOB.

;

Indicates the end of the line of code.


If you're interested in the details, you can get more information using the regex (7) section of the manual.

Although replacing one string with another might seem a rather trivial task, the code required to do the same thing in another language (for example, C) is rather daunting unless supported by additional subroutines from external libraries.

     < Day Day Up > 


    Red Hat Fedora 4 Unleashed
    Red Hat Fedora 4 Unleashed
    ISBN: 0672327929
    EAN: 2147483647
    Year: 2006
    Pages: 361

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net