Bird
Raised Fist0
Kotlinprogramming~10 mins

Regular expressions with Regex class in Kotlin - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Regular expressions with Regex class
Create Regex object
↓
Call match/search methods
↓
Check if pattern matches input
↓
Return match result or boolean
↓
Use result for logic or output
Create a Regex object, use it to check or find patterns in text, then use the results.
Execution Sample
Kotlin
val regex = Regex("a.b")
val input = "acb"
val match = regex.matches(input)
println(match)
Checks if the input string exactly matches the pattern 'a.b' and prints true or false.
Execution Table
StepActionEvaluationResult
1Create Regex object with pattern "a.b"Regex("a.b")Regex object created
2Set input stringinput = "acb"input = "acb"
3Call matches() to check full matchregex.matches("acb")true (pattern matches 'acb')
4Print match resultprintln(true)Output: true
5End of program--
💡 Program ends after printing the match result.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
regexnullRegex("a.b")Regex("a.b")Regex("a.b")Regex("a.b")
inputnullnull"acb""acb""acb"
matchnullnullnulltruetrue
Key Moments - 3 Insights
Why does regex.matches("acb") return true even though the pattern has a dot?
The dot in the pattern means 'any single character', so 'a.b' matches 'a' + any char + 'b'. Here, 'acb' fits exactly.
What if the input was "abc"? Would regex.matches("abc") be true?
No, because 'a.b' expects 'a' + any char + 'b'. 'abc' ends with 'c', so it does not match fully.
What does matches() check compared to containsMatchIn()?
matches() checks if the whole string fits the pattern exactly. containsMatchIn() checks if any part matches.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of 'match' after step 3?
Afalse
Bnull
Ctrue
D"acb"
💡 Hint
Check the 'Result' column in row for step 3 in execution_table.
At which step is the input string assigned the value "acb"?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look at the 'Action' column for when input is set in execution_table.
If the input was changed to "abc", what would regex.matches(input) return?
Afalse
Btrue
Cnull
DThrows error
💡 Hint
Refer to key_moments explanation about pattern matching with 'a.b' and input 'abc'.
Concept Snapshot
Regex class in Kotlin:
- Create with Regex("pattern")
- Use matches() to check full string match
- Use containsMatchIn() to check partial match
- Dot (.) matches any single character
- matches() returns Boolean true/false
Full Transcript
This example shows how to use Kotlin's Regex class to check if a string matches a pattern. We create a Regex object with the pattern 'a.b', where dot means any character. Then we check if the input string 'acb' matches the pattern exactly using matches(). The result is true because 'acb' fits the pattern 'a' + any char + 'b'. We print the result. The execution table traces each step: creating Regex, setting input, matching, printing, and ending. Variables regex, input, and match change values as the program runs. Key moments clarify why the dot matches any character and the difference between matches() and containsMatchIn(). The quiz tests understanding of variable values and pattern matching behavior. The snapshot summarizes how to use Regex class simply.

Practice

(1/5)
1. What does the Regex.matches() function do in Kotlin?
easy
A. Finds the first occurrence of the pattern in the string
B. Splits the string by the regex pattern
C. Replaces all matches of the pattern with a new string
D. Checks if the entire input string matches the regex pattern

Solution

  1. Step 1: Understand Regex.matches() purpose

    The matches() function returns true only if the whole input string fits the pattern exactly.
  2. Step 2: Differentiate from other Regex methods

    Other methods like find() look for parts of the string, but matches() requires full match.
  3. Final Answer:

    Checks if the entire input string matches the regex pattern -> Option D
  4. Quick Check:

    matches() = full string match [OK]
Hint: matches() means full string must fit pattern exactly [OK]
Common Mistakes:
  • Thinking matches() finds partial matches
  • Confusing matches() with find()
  • Assuming matches() replaces text
2. Which of the following is the correct way to create a Regex object to match digits in Kotlin?
easy
A. val regex = Regex("\\d+")
B. val regex = Regex("\d+")
C. val regex = Regex("\d")
D. val regex = Regex("[d]+")

Solution

  1. Step 1: Understand escaping in Kotlin strings

    In Kotlin, backslash must be escaped, so to represent \d (digit), we write "\\d".
  2. Step 2: Check the quantifier usage

    "\\d+" means one or more digits, which is correct for matching digits.
  3. Final Answer:

    val regex = Regex("\\d+") -> Option A
  4. Quick Check:

    Double backslash needed for \d in Kotlin strings [OK]
Hint: Escape backslash twice in Kotlin regex strings [OK]
Common Mistakes:
  • Using single backslash without escaping
  • Confusing character class syntax
  • Missing quantifier '+' for multiple digits
3. What will be the output of this Kotlin code?
val regex = Regex("a.b")
val input = "acb aab aeb"
val matches = regex.findAll(input).map { it.value }.toList()
println(matches)
medium
A. ["acb", "aab", "aeb"]
B. ["acb", "aab"]
C. ["aab", "aeb"]
D. []

Solution

  1. Step 1: Understand the regex pattern "a.b"

    The dot '.' matches any single character, so "a.b" matches 'a' + any char + 'b'.
  2. Step 2: Check input string matches

    Input has "acb", "aab", and "aeb" all matching the pattern.
  3. Final Answer:

    ["acb", "aab", "aeb"] -> Option A
  4. Quick Check:

    Dot matches any char between 'a' and 'b' [OK]
Hint: Dot '.' matches any single character in regex [OK]
Common Mistakes:
  • Thinking dot matches zero or multiple chars
  • Missing some matches in the list
  • Confusing findAll with matches
4. Identify the error in this Kotlin code snippet:
val regex = Regex("[a-z")
val result = regex.matches("abc")
medium
A. Missing escape for square brackets
B. Unclosed character class in regex pattern
C. matches() cannot be used with character classes
D. matches() requires a raw string literal

Solution

  1. Step 1: Check regex pattern syntax

    The pattern "[a-z" has an opening square bracket but no closing bracket, causing a syntax error.
  2. Step 2: Understand consequences

    Regex constructor will throw an exception due to invalid pattern.
  3. Final Answer:

    Unclosed character class in regex pattern -> Option B
  4. Quick Check:

    Character classes must be closed with ']' [OK]
Hint: Always close character classes with ']' in regex [OK]
Common Mistakes:
  • Forgetting to close square brackets
  • Thinking matches() needs raw strings
  • Confusing escape rules for brackets
5. You want to replace all sequences of one or more spaces in a string with a single dash ('-'). Which Kotlin Regex and method combination correctly does this?
hard
A. Regex("\\s+").replaceAll(input, "-")
B. Regex("\\s*").replace(input, "-")
C. Regex("\\s+").replace(input, "-")
D. Regex("[ ]+").replaceAll(input, "-")

Solution

  1. Step 1: Choose correct regex pattern for spaces

    "\\s+" matches one or more whitespace characters; correct for sequences of spaces.
  2. Step 2: Use correct Kotlin Regex method

    Kotlin's Regex class uses replace() to replace all matches; replaceAll() does not exist.
  3. Final Answer:

    Regex("\\s+").replace(input, "-") -> Option C
  4. Quick Check:

    Use replace() with "\\s+" to replace spaces [OK]
Hint: Use replace() with "\\s+" to replace space sequences [OK]
Common Mistakes:
  • Using replaceAll() which is not in Kotlin Regex
  • Using "\\s*" which matches zero spaces
  • Not escaping backslash properly
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