C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
For: We use a for-loop over the strings in our list. We call findFirstMatchIn on each string.
ForStringResult: The Regex matches strings that have one or more digits followed by the word "pounds."
Scala program that uses r, findFirstMatchIn
// Get Regex from this string.
val test = """\d* pounds""".r
// A list of strings to match.
val data = List("20 pounds", "5 pounds", "Error")
// Loop over strings in the list.
for (v <- data) {
// Try to match the strings.
val result = test.findFirstMatchIn(v)
if (result.isDefined) {
println(v + " = true")
}
else {
println(v + " = false")
}
}
Output
20 pounds = true
5 pounds = true
Error = false
Result: We test isDefined to see if the option has an inner value. We use "get" to access the inner Regex.
And: We call the group() function, with string arguments, to access the named groups from our Regex object.
Scala program that uses Regex groups
// An example string.
val animals = "cat and dog"
// Match words surrounding "and" and give them group names.
val result = """(\w+) and (\w+)""".r(
"animal1", "animal2").findFirstMatchIn(animals)
// See if match occurred.
if (result.isDefined) {
// Get the Regex.
val regex = result.get
// Get named groups and display them.
val animal1 = regex.group("animal1")
val animal2 = regex.group("animal2")
println(animal1)
println(animal2)
}
Output
cat
dog
For: We use a for-in loop to iterate over the results of MatchIterator. We access and print each string match.
Scala program that uses findAllIn
// Contains space-separated ID codes.
val ids = "a_1 a21 a31 b21 b_3 c10"
// Match all occurrences starting with "a" or "b" and with 2 digits.
val result = """[ab]\d\d""".r.findAllIn(ids)
// Iterate over our result.
// ... This accesses the Regex.MatchIterator.
for (r <- result) {
println(r)
}
Output
a21
a31
b21