Table of Contents

Regular Expressions

Matching multiple occurences of characters

Regexp Meaning
/ab*c/ Matches an a followed by zero or more b's, followed by c. Expressions are greedy–it will match as many as possible. Same as /ab{0,}c/.
/ab+c/ Matches an a followed by one or more b's followed by c. Same as /ab{1,}c/.
/ab?c/ Matches an a followed by an optional b followed by c Same as /ab{0,1}c/. This has a different meaning in Perl 5. In Perl 5, the expression: /ab*?c/matches an a followed by as few b's as possible (non-greedy).
/ab{3,5}c/

Matching the beginning and end of a line or string

When placed a the beginning of a regexp, the caret (^) will only match the pattern if it occurs starting at the beginning of the line or string. When placed a the end of a regexp, the dollar/ ($) will only match the pattern if it occurs finishing at the end of the line or string. e.g. s/[^\.]$/\./g would look for lines that don't end in a full stop, and place one there. ===== Character Classes ===== Sets of characters can be matched by containing the valid set inside square brackets. e.g. [aeiou] would match all vowels. The set can be negated by prefixing with a caret e.g. [^<>] matches all characters except the greater than and less than sign. ===== Shorthand Character Classes ===== ^ Short version ^ Long version ^ Meaning ^ | \d | [0-9] | Matches a digit | | \D | [^0-9] | Matches a non digit | | \w | [A-Za-z] | Matches a letter | | \W | [^A-Za-z]| Matches a non letter | | \s | [ \t\n\r]| Matches a whitespace character | | \S | [^0-9] | Matches a non whitespace character | Shorthand characters can be used i ===== Useful Regular expressions for Vim ===== Change pipe (|) delimited data, as copied from a MySQL console into tab delimited data so it may be pasted into Excel: :%s/[ ]*|[ ]*/\t/g