|
|
- WareLogging, PerlCode, RegularExpressions.
-
- * http://www.pcre.org/
- * perldoc: [http://perldoc.perl.org/perlreref.html perlreref] - RegEx reference
- * MasteringRegularExpressions
-
- Little RegEx tricks:
-
- # Stuff in parentheses is slurped into the elements of @results
- @results = $string =~ m/stuff, (more stuff), and (some other stuff)/;
-
- # Here, $result is forced into list context and so contains (more stuff).
- # Without parentheses, it would just contain 1 or 0, depending on the pattern match.
- ($result) = $string =~ m/stuff, (more stuff), and some other stuff/;
-
- Store a regex:
-
- $re = qr/whatever/;
-
- = a thing which has recently bitten me =
-
- When using s///x, keep in mind that whitespace continues to be significant in your substitution, which is after all a string.
-
- For example, this will be fine:
-
- $block =~ s/([^"\n]) # not a double-quote or newline
- \n # end-of-line
- ([^\n]) # not a newline
- /$1$newlines{$key}$2/xgs;
-
- While this will be all kinds of problematic:
-
-
- $block =~ s/([^"\n]) # not a double-quote or newline
- \n # end-of-line
- ([^\n]) # not a newline
- /$1
- $newlines{$key}
- $2
- /xgs;
-
- Incidentally, I think this is better written as:
-
- $block =~ s/(?<=[^"\n]) # not a double-quote or newline
- \n # end-of-line
- (?=[^\n]) # not a newline
-
- /$newlines{$key}/xgs;
|