Tutorial9: Regular Expressions

From CDOT Wiki
Revision as of 10:01, 5 July 2020 by Msaul (talk | contribs) (INVESTIGATION 1: SIMPLE & COMPLEX REGULAR EXPRESSIONS)
Jump to: navigation, search

USING REGULAR EXPRESSIONS


Main Objectives of this Practice Tutorial

  • Explain the purpose of Regular Expressions
  • Understand the difference between Regular Expressions and Filename Expansion
  • Understand the purpose of Literal (Simple) Regular Expressions
  • Understand common symbols for Complex Regular Expressions and their purpose
  • Understand command symbols for Extended Regular Expressions and their purpose
  • Use various Linux commands that use regular expressions

Tutorial Reference Material

Course Notes
Linux Command/Shortcut Reference
YouTube Videos
Course Notes:


Regular Expressions
  • Simple
  • Complex
  • Extended


Additional Linux Commands that Use Regular Expressions Brauer Instructional Videos:

KEY CONCEPTS

regular expression … is a sequence of characters that define a search pattern.

Usually such patterns are used by string searching algorithms for "find" or "find and replace" operations on strings, or for input validation.
Reference: https://en.wikipedia.org/wiki/Regular_expression

Regular Expressions vs. Filename Expansion

Filename expansion symbols allow the Linux shell to expand filenames as arguments (referred to as “globbing”).
Output of the ls -lR command to display directory structure.
In a previous lesson, you learned that filename expansion symbols allow the Linux shell to expand filenames as arguments (referred to as “globbing”) for file management commands. This is very useful for managing multiple files sharing similar characteristics such as the same file extension.

Filename Expansion symbols are used to search, edit and manipulate text and are used with Linux file management commands such as ls, rm, mv, cp, cat, less and more. This can represent text contained in files or text as a result of issuing Linux commands using a pipeline.

regular expression is a combination of two types of characters: literals and special characters.
In combination, these characters define a logical pattern. Strings of text can be compared to this pattern
to see if they fit the pattern defined by the expression.

Reference: https://www.whoishostingthis.com/resources/regex/

Literal (Simple) Regular Expressions

The simplest regular expression is a series of letters and numbers, possibly including white space (tabs or space characters).
The simplest regular expression is a series of letters and numbers, possibly including white space (tabs or space characters), that have no special meaning. Such a regular expression consists of ``literals; that is, normal letters, which match only an identical letter in the data being searched.

For example:

"This is a regular expression"

When an editor searches for a literal regular expression, it can only score a ``hit if it finds exactly that sequence of characters in the data it is searching. 
Reference: http://osr507doc.xinuos.com/en/OSUserG/_Literal_chars_in_regexps.html

Complex Regular Expressions

The problem with using literals or simple regular expressions is that general patterns are matched.

For example, the pattern “the” would be matched for larger word containing that pattern like there, they, either, them, their, etc. Another problem is that you may want to search for pattern at a specific location within the string of text (like at the beginning or end).

There are other regular expression tools to provide more precise matches. These tools are complex and extended regular expressions.

Complex Regular Expressions use symbols to help match text for more precise or complex patterns. The most common complex regular expression symbols are displayed below:

  • Anchors ^ , $
  • Characters .
  • Character Class [ ] , [^ ]
  • Zero or More Occurrence *

Examples of how to use these complex regular expressions with the grep command are displayed below:

Example of using anchors.
Example of matching characters.
Example of using character class.
Example of matching zero or more occurrence.
















Extended Regular Expressions

Extended Regular Expressions consist of additional special characters the “extend” the capability of regular expressions.


Repetition {min,max} , ? , +
Allows for more precise repetitions. Using braces, you can specify the minimum and maximum number of repetitions.


Grouping ( )
Perhaps you want to search for repetition for a group of characters, a word, or a phase.
You can enclose them within brackets ( ) to specify a group.


or Condition |
Can be used with grouping to match a variety of character(s), words or phases. The | symbol is used to separate the variety of character(s).

Examples of how to use these complex regular expressions with the grep command are displayed below:

Example of using repetition.
Example of using grouping.
Example of using or condition with grouping.





















INVESTIGATION 1: SIMPLE & COMPLEX REGULAR EXPRESSIONS


In this section, you will learn how to use the grep command with simple and complex regular expressions to help search for patterns contained in text files.


Perform the Following Steps:

  1. Login your matrix account.

  2. Issue a command to confirm you are located in your home directory.

    The wget command is used to download files from the Internet to your shell.
    This will be useful to download text files that we will be using for this tutorial.

  3. Issue the following linux command (copy and paste to save time):
    wget https://ict.senecacollege.ca/~murray.saul/uli101/textfile1.txt

  4. Issue the ls command to confirm that the text file was downloaded.

  5. View the contents of the textfile1.txt file using the more command and quickly view the contents of this file. When finished, exit the more command.

    Although there are several Linux commands that use regular expressions, we will only be using the grep command for this section.

  6. Issue the following linux command to match the pattern the within textfile1.txt:
    grep "the" textfile1.txt

  7. x

INVESTIGATION 2: EXTENDED REGULAR EXPRESSIONS

In this section, you will learn how to ...


Perform the Following Steps:

  1. x

In the next investigation, you will ...

INVESTIGATION 3: OTHER COMMANDS THAT USE REGULAR EXPRESSIONS

In this section, you will learn how to ...


Perform the Following Steps:

  1. x

LINUX PRACTICE QUESTIONS

The purpose of this section is to obtain extra practice to help with quizzes, your midterm, and your final exam.

Here is a link to the MS Word Document of ALL of the questions displayed below but with extra room to answer on the document to simulate a quiz:

https://ict.senecacollege.ca/~murray.saul/uli101/uli101_week9_practice.docx

Your instructor may take-up these questions during class. It is up to the student to attend classes in order to obtain the answers to the following questions. Your instructor will NOT provide these answers in any other form (eg. e-mail, etc).


Review Questions:

  1. x
  2. x
  3. x
  4. x
  5. x
  6. x
  7. x
  8. x