Regex.Split
This VB.NET Function separates a String
based on a pattern. The String
type's Split
Function is adequate for many purposes.
Split
notesThe Regex.Split
Function provides character classes and is more robust than String
Split
. With it we develop advanced splitting methods.
One use for the Regex.Split
function is to break
up an input string
based on whitespace. Sometimes, an input string
may have more than one whitespace character in a row.
Imports System.Text.RegularExpressions Module Module1 Sub Main() ' The input string. Dim expression As String = "3 * 5 = 15" ' Call Regex.Split. Dim operands() As String = Regex.Split(expression, "\s+") ' Loop over the elements. For Each operand As String In operands Console.WriteLine(operand) Next End Sub End Module3 * 5 = 15
Please notice that the Imports System.Text.RegularExpressions
directive is used at the top of this program. This includes the Regex
type into the current program.
Regex.Split
function and pass the pattern \D+ to it. This means one or more non-digit characters.Imports System.Text.RegularExpressions Module Module1 Sub Main() ' The input string. Dim sentence As String = "10 cats, 20 dogs, 40 fish and 1 programmer." ' Invoke the Regex.Split shared function. Dim digits() As String = Regex.Split(sentence, "\D+") ' Loop over the elements in the resulting array. For Each item As String In digits Console.WriteLine(item) Next End Sub End Module10 20 40 1
Sometimes Regex.Split
can be used with additional code in a VB.NET For Each
loop to test each string
. This allows us to filter the results in an imperative way.
Regex.Split
with the metacharacter "\W".For Each
loop over the resulting string
array and test each string
for an uppercase first letter.Imports System.Text.RegularExpressions Module Module1 Sub Main() Dim sentence As String = "Bob and Michelle are from Indiana." ' Step 1: split on non-word characters. Dim words = Regex.Split(sentence, "\W") ' Step 2: test all resulting strings and find uppercase words. For Each word in words If Not String.IsNullOrEmpty(word) AndAlso Char.IsUpper(word(0)) Console.WriteLine(word) End If Next Word End Sub End ModuleBob Michelle Indiana
We examined the Regex.Split
function. With it, you can split strings based on patterns more complex than is possible with the String
type's Split
function.