Ruby regular expressions

http://www.zenspider.com/Languages/Ruby/QuickRef.html#regexen

Test out your regexen in irb or on: http://www.rubyxp.com/

Usual recommended form:

str =~ /regex/

Lexical options:

/normal regex/iomx[neus] %rXalternate formX (where X can be any character or pair {} etc)

options:

/i        case insensitive /o        only interpolate #{} blocks once /m        multiline mode - '.' will match newline /x        extended mode - whitespace is ignored /[neus]   encoding: none, EUC, UTF-8, SJIS, respectively

regex characters:

.            any character except newline [ ]          any single character of set [^ ]         any single character NOT of set +            1 or more previous regular expression +?           1 or more previous regular expression (non-greedy) ?            0 or 1 previous regular expression grouping regular expressions ^            beginning of a line or string $            end of a line or string {m,n}        at least m but most n previous regular expression {m,n}? at least m but most n previous regular expression (non-greedy) \1-9         nth previous captured group \&           whole match \`           pre-match \'           post-match \+           highest group matched \A           beginning of a string \b           backspace(0x08)(inside[]only) \b           word boundary(outside[]only) \B           non-word boundary \d           digit, same as[0-9] \D           non-digit \S           non-whitespace character \s           whitespace character[ \t\n\r\f] \W           non-word character \w           word character[0-9A-Za-z_] \z           end of a string \Z           end of a string, or before newline at the end (?#)         comment (?:)         grouping without backreferences (?=)         zero-width positive look-ahead assertion (?!)         zero-width negative look-ahead assertion (?>)         nested anchored sub-regexp. stops backtracking. (?imx-imx)   turns on/off imx options for rest of regexp. (?imx-imx:re) turns on/off imx options, localized in group.
 * 0 or more previous regular expression
 * ?           0 or more previous regular expression (non-greedy)
 * alternation

special character classes:

[:alnum:]  alpha-numeric characters [:alpha:]  alphabetic characters [:blank:]  whitespace - does not include tabs, carriage returns, etc [:cntrl:]  control characters [:digit:]  decimal digits [:graph:]  graph characters [:lower:]  lower case characters [:print:]  printable characters [:punct:]  punctuation characters [:space:]  whitespace, including tabs, carriage returns, etc [:upper:]  upper case characters [:xdigit:] hexadecimal digits

http://www.ralfebert.de/blog/ruby/regex_cheat_sheet/