Bird
Raised Fist0
R Programmingprogramming~5 mins

Regular expressions in R in R Programming - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a regular expression (regex) in R?
A regular expression is a pattern of characters used to find or match text in strings. In R, regex helps search, replace, or split text based on these patterns.
Click to reveal answer
beginner
Which R function is commonly used to check if a pattern exists in a string?
The grepl() function returns TRUE if the pattern is found in the string, otherwise FALSE.
Click to reveal answer
intermediate
How do you extract matched text using regex in R?
Use regmatches() with gregexpr() to extract all matches of a pattern from a string.
Click to reveal answer
beginner
What does the regex pattern ^abc mean?
It means the string must start with the characters 'abc'. The caret ^ anchors the match to the start of the string.
Click to reveal answer
intermediate
How can you replace all digits in a string with '#' in R?
Use gsub("\\\d", "#", text). Here, \\\d matches any digit, and gsub() replaces all matches.
Click to reveal answer
Which function returns the positions of regex matches in a string in R?
Aregmatches()
Bgrepl()
Cgsub()
Dgregexpr()
What does the regex symbol \d represent in R?
AAny letter
BAny whitespace
CAny digit (0-9)
DStart of string
Which function would you use to replace text matching a regex pattern in R?
Agsub()
Bgregexpr()
Cgrepl()
Dregexpr()
What does the regex pattern abc$ mean?
AString ends with 'abc'
BString starts with 'abc'
CString contains 'abc' anywhere
DString has 'abc' repeated
Which function returns TRUE or FALSE if a pattern is found in a string?
Agsub()
Bgrepl()
Cregmatches()
Dgregexpr()
Explain how to find and extract all occurrences of a pattern in a string using R regex functions.
Think about functions that locate positions and then extract text.
You got /4 concepts.
    Describe how to replace all digits in a string with a specific character using regular expressions in R.
    Consider the function that replaces all matches, not just the first.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the grepl() function do in R when used with regular expressions?
      easy
      A. It checks if a pattern exists in a string and returns TRUE or FALSE.
      B. It replaces all occurrences of a pattern in a string.
      C. It extracts all matches of a pattern from a string.
      D. It splits a string into parts based on a pattern.

      Solution

      1. Step 1: Understand the purpose of grepl()

        grepl() returns a logical value indicating if the pattern is found in the string.
      2. Step 2: Compare with other functions

        Functions like gsub() replace text, and strsplit() splits strings, so they do not match grepl()'s behavior.
      3. Final Answer:

        It checks if a pattern exists in a string and returns TRUE or FALSE. -> Option A
      4. Quick Check:

        grepl() = logical check [OK]
      Hint: Remember: grepl() returns TRUE/FALSE if pattern found [OK]
      Common Mistakes:
      • Confusing grepl() with gsub() which replaces text
      • Thinking grepl() extracts matched text
      • Assuming grepl() splits strings
      2. Which of the following is the correct syntax to replace all occurrences of "cat" with "dog" in the string "cat and cat" using regular expressions in R?
      easy
      A. sub("cat", "dog", "cat and cat")
      B. str_replace_all("cat and cat", "cat", "dog")
      C. gsub("cat", "dog", "cat and cat")
      D. replace("cat", "dog", "cat and cat")

      Solution

      1. Step 1: Identify function for replacing all occurrences

        gsub() replaces all matches, while sub() replaces only the first.
      2. Step 2: Check syntax correctness

        gsub(pattern, replacement, string) is the correct order and usage in R.
      3. Final Answer:

        gsub("cat", "dog", "cat and cat") -> Option C
      4. Quick Check:

        Replace all = gsub() [OK]
      Hint: Use gsub() to replace all matches, sub() only first [OK]
      Common Mistakes:
      • Using sub() when all occurrences need replacement
      • Using non-existent replace() function in base R
      • Confusing argument order in functions
      3. What is the output of the following R code?
      text <- c("apple", "banana", "apricot", "berry")
      matches <- grepl("^a", text)
      matches
      medium
      A. [FALSE, TRUE, FALSE, TRUE]
      B. [FALSE, FALSE, FALSE, FALSE]
      C. [TRUE, TRUE, TRUE, TRUE]
      D. [TRUE, FALSE, TRUE, FALSE]

      Solution

      1. Step 1: Understand the pattern "^a"

        The caret (^) means the string must start with 'a'. So strings starting with 'a' match.
      2. Step 2: Check each string in text

        "apple" and "apricot" start with 'a' (TRUE), "banana" and "berry" do not (FALSE).
      3. Final Answer:

        [TRUE, FALSE, TRUE, FALSE] -> Option D
      4. Quick Check:

        ^a matches start with 'a' = [TRUE, FALSE, TRUE, FALSE] [OK]
      Hint: ^ means start of string; check which words start with 'a' [OK]
      Common Mistakes:
      • Ignoring ^ and matching 'a' anywhere
      • Confusing TRUE/FALSE order in output
      • Assuming grepl returns matched strings instead of logical
      4. The following R code is intended to replace the first digit in a string with "#" but does not work as expected:
      text <- "abc123"
      result <- sub("[0-9]", "#", text)
      print(result)

      What is the problem and how to fix it?
      medium
      A. Pattern should be "\\d" instead of "[0-9]" for digits in R regex.
      B. No problem; code works correctly and replaces first digit.
      C. Use gsub() instead of sub() to replace all digits, not just first.
      D. The replacement string "#" must be escaped as "\\#".

      Solution

      1. Step 1: Check the pattern and function

        [0-9] matches any digit; sub() replaces the first match only.
      2. Step 2: Verify the output

        Replacing first digit '1' with '#' in "abc123" results in "abc#23", which is expected.
      3. Final Answer:

        No problem; code works correctly and replaces first digit. -> Option B
      4. Quick Check:

        sub() replaces first digit correctly [OK]
      Hint: sub() replaces first match; [0-9] matches digits [OK]
      Common Mistakes:
      • Thinking [0-9] is invalid in R regex
      • Confusing sub() with gsub() for all replacements
      • Believing replacement '#' needs escaping
      5. You have a vector of email addresses:
      emails <- c("user1@example.com", "admin@sitecom", "test.comuser@domain.net")

      Which regular expression pattern would correctly identify emails ending with ".com" using grepl()?
      hard
      A. "\\.com$"
      B. ".com"
      C. "com$"
      D. "\\.com"

      Solution

      1. Step 1: Understand the pattern requirements

        We want to match emails ending exactly with ".com". The dot must be escaped as "\\." to match a literal dot, and "$" means end of string.
      2. Step 2: Analyze each option

        "\\.com$" uses "\\.com$" which matches '.com' at the end. ".com" matches any character before 'com', not necessarily end. "com$" misses the dot. "\\.com" matches '.com' anywhere, not necessarily at end.
      3. Final Answer:

        "\\.com$" -> Option A
      4. Quick Check:

        Escape dot and use $ for end match [OK]
      Hint: Escape dot with \\. and use $ to match string end [OK]
      Common Mistakes:
      • Not escaping dot, so matches any character
      • Missing $ causing partial matches
      • Confusing string end anchor with start anchor
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard