• What is a regular expression
    • A regular expression is also called a pattern or regex
    • Sequence of characters
    • Forms a search pattern
    • Normally written between forward slashes /pattern/
    • Used to check if a string contains the pattern and also to extract portions that match
  • Characters
    • A regex has 2 types of characters
    • regular character - with literal meaning
    • meta character - special meaning
  • Use Cases & Examples
    • seriali[sz]e - To locate the same word with different spellings
    • To locate email addresses in the text
    • Syntax Highlighting
    • Search engines
  • Quantification/Repetition
    • Quantifier - is a construct that specifies how often the preceeding element is allowed to occur.
    • a? - zero or one occurence of a
    • a* - zero or more of a
    • a+ - one or more of a
    • `a{3} - exactly 3 occurrences of a
    • `a{3,} - 3 or more occurences of a
    • `a{3,6} - between 3 and 6 occurences of a
  • Grouping
    • Grouping constructs specify a group
    • [abc] - a single character of a,b or c
    • [^abc] - a single character except a, b or c
    • [a-zA-Z] - a single character in the range of a-z or A-Z
    • (..) - everything enclosed
  • Metacharacters
    • ^ - Start of line
    • $ - end of line
    • \A - start of string
    • \z - end of string
    • . - any single character
    • \s - any whitespace character
    • \S - any non whitespace character
    • \d - any digit
    • \D - any non digit
    • \w - any word character
    • \W - any non word character
  • Logical
    • (a b) - a or b
  • Ruby Examples
    • Ruby has built in support for regex
    • =~ operator is used to match a regex and a string. Order does not matter
    • If match is found, the operator returns index of first match in string.
    • Returns nil otherwise
    • "apple" =~ /ap/ #=> 0
    • "apple" =~ /fruit/ #=> nil
    • match method returns a match data object
    • "apple".match(/ap/) #<MatchData "ap">
  • Resources