正则表达式是处理字符串的强大工具,尤其在VB.NET编程中,它可以帮助我们快速有效地进行字符串的匹配、查找、替换和验证等操作。本篇文章将提供50个实用的VB正则表达式实例,并对其进行详细解析,同时分享一些正则表达式的编写技巧。

实例1:验证电子邮件地址

Imports System.Text.RegularExpressions

Public Function IsValidEmail(ByVal email As String) As Boolean
    Dim regex As New Regex("^[^@\s]+@[^@\s]+\.[^@\s]+$")
    Return regex.IsMatch(email)
End Function

解析:此正则表达式用于验证电子邮件地址的格式是否正确。它匹配以非空格字符开始,后跟一个@符号,然后是更多的非空格字符,接着是一个点.,最后是更多的非空格字符的字符串。

实例2:提取网址域名

Public Function ExtractDomain(ByVal url As String) As String
    Dim regex As New Regex("(?<=http://|https://)([^/]+)")
    Dim match As Match = regex.Match(url)
    If match.Success Then
        Return match.Value
    Else
        Return ""
    End If
End Function

实例3:去除字符串中的HTML标签

Public Function RemoveHtmlTags(ByVal text As String) As String
    Dim regex As New Regex("<.*?>")
    Return regex.Replace(text, "")
End Function

解析:此正则表达式用于移除字符串中的HTML标签。

实例4:查找重复的单词

Public Function FindDuplicateWords(ByVal text As String) As String
    Dim regex As New Regex("\b(\w+)\b(?=\s+\1\b)")
    Return regex.Replace(text, "")
End Function

解析:此正则表达式用于查找并移除文本中重复的单词。

实例5:匹配IP地址

Public Function IsValidIPAddress(ByVal ip As String) As Boolean
    Dim regex As New Regex("^(?:\d{1,3}\.){3}\d{1,3}$")
    Return regex.IsMatch(ip)
End Function

解析:此正则表达式用于验证IP地址的格式。

实例6:提取日期

Public Function ExtractDate(ByVal text As String) As String
    Dim regex As New Regex("\b(?:\d{1,2}[-/]\d{1,2}[-/]\d{2,4}|\d{2,4}[-/]\d{1,2}[-/]\d{1,2})\b")
    Dim match As MatchCollection = regex.Matches(text)
    For Each m As Match In match
        Console.WriteLine(m.Value)
    Next
End Function

解析:此正则表达式用于提取文本中的日期。

实例7:替换特殊字符

Public Function ReplaceSpecialChars(ByVal text As String) As String
    Dim regex As New Regex("[^a-zA-Z0-9 ]")
    Return regex.Replace(text, "")
End Function

解析:此正则表达式用于替换字符串中的所有非字母数字字符。

实例8:匹配手机号码

Public Function IsValidPhoneNumber(ByVal phone As String) As Boolean
    Dim regex As New Regex("^\d{10}$")
    Return regex.IsMatch(phone)
End Function

解析:此正则表达式用于验证手机号码是否由10位数字组成。

实例9:提取URL参数

Public Function ExtractUrlParameters(ByVal url As String) As String
    Dim regex As New Regex("[?&](\w+)=([^&]*)")
    Dim match As MatchCollection = regex.Matches(url)
    For Each m As Match In match
        Console.WriteLine(m.Groups(1).Value & ": " & m.Groups(2).Value)
    Next
End Function

解析:此正则表达式用于从URL中提取查询参数。

实例10:匹配URL

Public Function IsValidUrl(ByVal url As String) As Boolean
    Dim regex As New Regex("^(http[s]?://)?((([a-z]{2,}|[0-9]{1,3}|[1-9][0-9]{0,2})\.){1,3}([a-z]{2,}|[0-9]{1,3}|[1-9][0-9]{0,2})(:[0-9]{1,5})?(/.*)?$")
    Return regex.IsMatch(url)
End Function

解析:此正则表达式用于验证URL的格式。

实例11:查找并替换文本中的所有URL

Public Function ReplaceUrls(ByVal text As String) As String
    Dim regex As New Regex("(http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+)")
    Return regex.Replace(text, "[URL]")
End Function

解析:此正则表达式用于查找并替换文本中的所有URL。

实例12:匹配密码强度

Public Function IsValidPassword(ByVal password As String) As Boolean
    Dim regex As New Regex("^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$")
    Return regex.IsMatch(password)
End Function

解析:此正则表达式用于验证密码是否满足强度要求。

实例13:提取文件扩展名

Public Function ExtractFileExtension(ByVal fileName As String) As String
    Dim regex As New Regex("\.[a-zA-Z0-9]+$")
    Dim match As Match = regex.Match(fileName)
    If match.Success Then
        Return match.Value
    Else
        Return ""
    End If
End Function

解析:此正则表达式用于从文件名中提取扩展名。

实例14:匹配颜色代码

Public Function IsValidColorCode(ByVal color As String) As Boolean
    Dim regex As New Regex("^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$")
    Return regex.IsMatch(color)
End Function

解析:此正则表达式用于验证颜色代码的格式。

实例15:查找并替换文本中的HTML实体

Public Function ReplaceHtmlEntities(ByVal text As String) As String
    Dim regex As New Regex("&(#?)([a-zA-Z]+);")
    Return regex.Replace(text, "")
End Function

解析:此正则表达式用于替换文本中的HTML实体。

实例16:匹配ISBN号码

Public Function IsValidISBN(ByVal isbn As String) As Boolean
    Dim regex As New Regex("^(?:ISBN(?:-13)?:? )?(?=[0-9]{9}X|[0-9]{10}$)(?:97[89][- ]?)?[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9X]$")
    Return regex.IsMatch(isbn)
End Function

解析:此正则表达式用于验证ISBN号码的格式。

实例17:提取文本中的URL链接

Public Function ExtractUrlsFromText(ByVal text As String) As String
    Dim regex As New Regex("(http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+)")
    Return regex.Replace(text, "[URL]")
End Function

解析:此正则表达式用于从文本中提取所有URL链接。

实例18:匹配邮政编码

Public Function IsValidPostalCode(ByVal postalCode As String) As Boolean
    Dim regex As New Regex("^[A-Za-z0-9]{5}(?:-[A-Za-z0-9]{4})?$")
    Return regex.IsMatch(postalCode)
End Function

解析:此正则表达式用于验证邮政编码的格式。

实例19:匹配MAC地址

Public Function IsValidMACAddress(ByVal mac As String) As Boolean
    Dim regex As New Regex("([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})")
    Return regex.IsMatch(mac)
End Function

解析:此正则表达式用于验证MAC地址的格式。

实例20:匹配IPv6地址

Public Function IsValidIPv6(ByVal ipv6 As String) As Boolean
    Dim regex As New Regex("^([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4})$")
    Return regex.IsMatch(ipv6)
End Function

解析:此正则表达式用于验证IPv6地址的格式。

实例21:匹配时间格式

Public Function IsValidTime(ByVal time As String) As Boolean
    Dim regex As New Regex("^(1[0-2]|0?[1-9]):([0-5]?[0-9])(:[0-5]?[0-9])? (AM|PM)$")
    Return regex.IsMatch(time)
End Function

解析:此正则表达式用于验证时间格式。

实例22:匹配日期时间格式

Public Function IsValidDateTime(ByVal dateTime As String) As Boolean
    Dim regex As New Regex("^(1[0-2]|0?[1-9]):([0-5]?[0-9])(:[0-5]?[0-9])? (AM|PM), (1[0-2]|0?[1-9])\/(3[01]|[12][0-9]|0?[1-9])\/(19|20)?\d{2}$")
    Return regex.IsMatch(dateTime)
End Function

解析:此正则表达式用于验证日期时间格式。

实例23:匹配货币格式

Public Function IsValidCurrency(ByVal currency As String) As Boolean
    Dim regex As New Regex("^(\d{1,3}(,\d{3})*|(\d+))(\.\d{2})?$")
    Return regex.IsMatch(currency)
End Function

解析:此正则表达式用于验证货币格式。

实例24:匹配邮政编码(加拿大)

Public Function IsValidCanadianPostalCode(ByVal postalCode As String) As Boolean
    Dim regex As New Regex("^[A-Za-z]\d[A-Za-z] \d[A-Za-z]\d$")
    Return regex.IsMatch(postalCode)
End Function

解析:此正则表达式用于验证加拿大邮政编码的格式。

实例25:匹配邮政编码(英国)

Public Function IsValidBritishPostalCode(ByVal postalCode As String) As Boolean
    Dim regex As New Regex("^[A-Za-z]{1,2}[0-9Rr][0-9A-Za-z]? [0-9][ABD-HJLNOP-UW-Z]{2}$")
    Return regex.IsMatch(postalCode)
End Function

解析:此正则表达式用于验证英国邮政编码的格式。

实例26:匹配邮政编码(澳大利亚)

Public Function IsValidAustralianPostalCode(ByVal postalCode As String) As Boolean
    Dim regex As New Regex("^(?:(?:0[28]|1[3-9]|2[0-9]|3[0-8]|4[0-9]|5[0-9]|6[0-4]|7[0-8]|8[0-9]|9[0-9])\d{3})$")
    Return regex.IsMatch(postalCode)
End Function

解析:此正则表达式用于验证澳大利亚邮政编码的格式。

实例27:匹配身份证号码(中国)

Public Function IsValidChineseIDNumber(ByVal idNumber As String) As Boolean
    Dim regex As New Regex("^(?:[1-9]\d{5}(?:18|19|([23]\d))\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X))$")
    Return regex.IsMatch(idNumber)
End Function

解析:此正则表达式用于验证中国身份证号码的格式。

实例28:匹配身份证号码(印度)

Public Function IsValidIndianIDNumber(ByVal idNumber As String) As Boolean
    Dim regex As New Regex("^[A-Z]{5}[0-9]{4}[A-Z]{1}$")
    Return regex.IsMatch(idNumber)
End Function

解析:此正则表达式用于验证印度身份证号码的格式。

实例29:匹配身份证号码(巴西)

Public Function IsValidBrazilianIDNumber(ByVal idNumber As String) As Boolean
    Dim regex As New Regex("^(?:[0-9]{3}\.?[0-9]{3}\.?[0-9]{3}-?[0-9]{2})$")
    Return regex.IsMatch(idNumber)
End Function

解析:此正则表达式用于验证巴西身份证号码的格式。

实例30:匹配身份证号码(日本)

Public Function IsValidJapaneseIDNumber(ByVal idNumber As String) As Boolean
    Dim regex As New Regex("^[0-9]{7}(-[0-9]{7})?$")
    Return regex.IsMatch(idNumber)
End Function

解析:此正则表达式用于验证日本身份证号码的格式。

实例31:匹配身份证号码(韩国)

Public Function IsValidKoreanIDNumber(ByVal idNumber As String) As Boolean
    Dim regex As New Regex("^[0-9]{6}-?[0-9]{7}$")
    Return regex.IsMatch(idNumber)
End Function

解析:此正则表达式用于验证韩国身份证号码的格式。

实例32:匹配身份证号码(俄罗斯)

Public Function IsValidRussianIDNumber(ByVal idNumber As String) As Boolean
    Dim regex As New Regex("^[0-9]{10}$")
    Return regex.IsMatch(idNumber)
End Function

解析:此正则表达式用于验证俄罗斯身份证号码的格式。

实例33:匹配身份证号码(德国)

Public Function IsValidGermanIDNumber(ByVal idNumber As String) As Boolean
    Dim regex As New Regex("^[0-9]{11}$")
    Return regex.IsMatch(idNumber)
End Function

解析:此正则表达式用于验证德国身份证号码的格式。

实例34:匹配身份证号码(法国)

”`vb Public Function IsValidFrenchIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{11}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证法国身份证号码的格式。

实例35:匹配身份证号码(意大利)

”`vb Public Function IsValidItalianIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{16}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证意大利身份证号码的格式。

实例36:匹配身份证号码(西班牙)

”`vb Public Function IsValidSpanishIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{9}[A-Z]{1}[0-9]{2}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证西班牙身份证号码的格式。

实例37:匹配身份证号码(荷兰)

”`vb Public Function IsValidDutchIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{9}[A-Z]{1}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证荷兰身份证号码的格式。

实例38:匹配身份证号码(比利时)

”`vb Public Function IsValidBelgianIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{11}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证比利时身份证号码的格式。

实例39:匹配身份证号码(瑞典)

”`vb Public Function IsValidSwedishIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{12}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证瑞典身份证号码的格式。

实例40:匹配身份证号码(挪威)

”`vb Public Function IsValidNorwegianIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{11}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证挪威身份证号码的格式。

实例41:匹配身份证号码(丹麦)

”`vb Public Function IsValidDanishIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{10}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证丹麦身份证号码的格式。

实例42:匹配身份证号码(芬兰)

”`vb Public Function IsValidFinnishIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{11}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证芬兰身份证号码的格式。

实例43:匹配身份证号码(希腊)

”`vb Public Function IsValidGreekIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{9}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证希腊身份证号码的格式。

实例44:匹配身份证号码(葡萄牙)

”`vb Public Function IsValidPortugueseIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{9}[A-Z]{1}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证葡萄牙身份证号码的格式。

实例45:匹配身份证号码(爱尔兰)

”`vb Public Function IsValidIrishIDNumber(ByVal idNumber As String) As Boolean

Dim regex As New Regex("^[0-9]{7}[A-Z]{2}$")
Return regex.IsMatch(idNumber)

End Function

解析:此正则表达式用于验证爱尔兰身份证号码的格式。

实例46