• 正则表达式处理基类


    发个出来.希望对做项目的有些帮助.
      1Imports System
      2Imports System.Text
      3Imports System.Text.RegularExpressions
      4
      5Namespace WanerSoft.Provider.Text
      6
      7    ''' <summary>
      8    ''' 正则表达式处理
      9    ''' </summary>
     10    ''' <remarks></remarks>

     11    Public Class RegExp
     12
     13        ''' <summary>
     14        ''' 正则表达式替换,重写
     15        ''' </summary>
     16        ''' <param name="input">输入内容</param>
     17        ''' <param name="pattern">替换规则</param>
     18        ''' <param name="replacement">替换结果</param>
     19        ''' <returns></returns>
     20        ''' <remarks></remarks>

     21        Public Shared Function Replace(ByVal input As StringByVal pattern As StringByVal replacement As StringAs String
     22            Return Regex.Replace(input, pattern, replacement, (RegexOptions.Multiline Or RegexOptions.IgnoreCase))
     23        End Function

     24
     25        ''' <summary>
     26        ''' 正则表达式替换,重写
     27        ''' </summary>
     28        ''' <param name="input">输入内容</param>
     29        ''' <param name="pattern">替换规则</param>
     30        ''' <param name="replacement">替换结果</param>
     31        ''' <param name="regexOptions">RegexOptions枚举</param>
     32        ''' <returns></returns>
     33        ''' <remarks></remarks>

     34        Public Shared Function Replace(ByVal input As StringByVal pattern As StringByVal replacement As StringByVal regexOptions As RegexOptions) As String
     35            Return Regex.Replace(input, pattern, replacement, regexOptions)
     36        End Function

     37
     38        ''' <summary>
     39        ''' 正则表达式替换,批量,重写
     40        ''' </summary>
     41        ''' <param name="input">输入内容</param>
     42        ''' <param name="pattern">替换规则</param>
     43        ''' <param name="replacement">替换结果</param>
     44        ''' <param name="ro">RegexOptions枚举</param>
     45        ''' <returns></returns>
     46        ''' <remarks></remarks>

     47        Public Shared Function Replace(ByVal input As StringByVal pattern As String(), ByVal replacement As String(), ByVal ro As RegexOptions) As String
     48            For i As Integer = 0 To pattern.Length - 1
     49                input = Regex.Replace(input, pattern(i), replacement(i), ro)
     50            Next
     51            Return input
     52        End Function

     53
     54        ''' <summary>
     55        ''' 搜索正则表达式的所有匹配项,不区分大小写及换行
     56        ''' </summary>
     57        ''' <param name="input">搜索内容</param>
     58        ''' <param name="pattern">匹配规则</param>
     59        ''' <returns></returns>
     60        ''' <remarks></remarks>

     61        Public Shared Function Matches(ByVal input As StringByVal pattern As StringAs MatchCollection
     62            Dim ObjRegex As Regex = New Regex(pattern, (RegexOptions.Multiline Or RegexOptions.IgnoreCase))
     63            Return ObjRegex.Matches(input)
     64        End Function

     65
     66        ''' <summary>
     67        ''' 单个正则表达式匹配的结果,不区分大小写及换行
     68        ''' </summary>
     69        ''' <param name="input">搜索内容</param>
     70        ''' <param name="pattern">匹配规则</param>
     71        ''' <returns></returns>
     72        ''' <remarks></remarks>

     73        Public Shared Function Match(ByVal input As StringByVal pattern As StringAs Match
     74            Dim ObjRegex As Regex = New Regex(pattern, (RegexOptions.Multiline Or RegexOptions.IgnoreCase))
     75            Return ObjRegex.Match(input)
     76        End Function

     77
     78        ''' <summary>
     79        ''' 判断是否为物理路径
     80        ''' </summary>
     81        ''' <param name="Path">地址</param>
     82        ''' <returns></returns>
     83        ''' <remarks></remarks>

     84        Public Shared Function IsPhysicalPath(ByVal Path As StringAs Boolean
     85            Dim pattern As String = "^\s*[a-zA-Z]:.*$"
     86            Return Regex.IsMatch(Path, pattern)
     87        End Function

     88
     89        ''' <summary>
     90        ''' 判断是否为相对路径
     91        ''' </summary>
     92        ''' <param name="s">地址</param>
     93        ''' <returns></returns>
     94        ''' <remarks></remarks>

     95        Public Shared Function IsRelativePath(ByVal s As StringAs Boolean
     96            If ((s Is NothingOrElse (s = String.Empty)) Then
     97                Return False
     98            End If
     99            If (s.StartsWith("/"OrElse s.StartsWith("?")) Then
    100                Return False
    101            End If
    102            If Regex.IsMatch(s, "^\s*[a-zA-Z]{1,10}:.*$"Then
    103                Return False
    104            End If
    105            Return True
    106        End Function

    107
    108        ''' <summary>
    109        ''' 判断是否为邮件地址
    110        ''' </summary>
    111        ''' <param name="s">内容</param>
    112        ''' <returns></returns>
    113        ''' <remarks></remarks>

    114        Public Shared Function IsEmail(ByVal s As StringAs Boolean
    115            Dim pattern As String = "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"
    116            Return Regex.IsMatch(s, pattern)
    117        End Function

    118
    119        ''' <summary>
    120        ''' 判断是否为IP
    121        ''' </summary>
    122        ''' <param name="s">内容</param>
    123        ''' <returns></returns>
    124        ''' <remarks></remarks>

    125        Public Shared Function IsIp(ByVal s As StringAs Boolean
    126            Dim pattern As String = "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"
    127            Return Regex.IsMatch(s, pattern)
    128        End Function

    129
    130        ''' <summary>
    131        ''' 判断是否为数字
    132        ''' </summary>
    133        ''' <param name="s">内容</param>
    134        ''' <returns></returns>
    135        ''' <remarks></remarks>

    136        Public Shared Function IsNumeric(ByVal s As StringAs Boolean
    137            Dim pattern As String = "^\-?[0-9]+$"
    138            Return Regex.IsMatch(s, pattern)
    139        End Function

    140
    141        ''' <summary>
    142        ''' 判断是否为整数类型
    143        ''' </summary>
    144        ''' <param name="s">内容</param>
    145        ''' <returns></returns>
    146        ''' <remarks></remarks>

    147        Public Shared Function IsUnsNumeric(ByVal s As StringAs Boolean
    148            Dim pattern As String = "^[0-9]+$"
    149            Return Regex.IsMatch(s, pattern)
    150        End Function

    151
    152        ''' <summary>
    153        ''' 判断是否为小数
    154        ''' </summary>
    155        ''' <param name="s">内容</param>
    156        ''' <returns></returns>
    157        ''' <remarks></remarks>

    158        Public Shared Function IsUnsFlaot(ByVal s As StringAs Boolean
    159            Dim pattern As String = "^[0-9]+.?[0-9]+$"
    160            Return Regex.IsMatch(s, pattern)
    161        End Function

    162
    163        ''' <summary>
    164        ''' 判断是否为安全字符串(防注入)
    165        ''' </summary>
    166        ''' <param name="s">内容</param>
    167        ''' <returns></returns>
    168        ''' <remarks></remarks>

    169        Public Shared Function IsSafety(ByVal s As StringAs Boolean
    170            Dim input As String = Regex.Replace(s.Replace("%20"" "), "\s"" ")
    171            Dim pattern As String = "select |insert |delete from |count\(|drop table|update |truncate |asc\(|mid\(|char\(|xp_cmdshell|exec master|net localgroup administrators|:|net user|""|\'| or "
    172            Return Not Regex.IsMatch(input, pattern, RegexOptions.IgnoreCase)
    173        End Function

    174
    175        ''' <summary>
    176        ''' 判断是否为Unicode
    177        ''' </summary>
    178        ''' <param name="s">内容</param>
    179        ''' <returns></returns>
    180        ''' <remarks></remarks>

    181        Public Shared Function IsUnicode(ByVal s As StringAs Boolean
    182            Dim pattern As String = "^[\u4E00-\u9FA5\uE815-\uFA29]+$"
    183            Return Regex.IsMatch(s, pattern)
    184        End Function

    185
    186        ''' <summary>
    187        ''' 判断是否为Url
    188        ''' </summary>
    189        ''' <param name="s">内容</param>
    190        ''' <returns></returns>
    191        ''' <remarks></remarks>

    192        Public Shared Function IsUrl(ByVal s As StringAs Boolean
    193            Dim pattern As String = "^(http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9%\-_@]+\.[A-Za-z0-9%\-_@]+[A-Za-z0-9\.\/=\?%\-&_~`@:\+!;]*$"
    194            Return Regex.IsMatch(s, pattern, RegexOptions.IgnoreCase)
    195        End Function

    196
    197    End Class

    198
    199End Namespace

    200
  • 相关阅读:
    正则表达式入门
    Tyvj 1518 CPU监控——极恶线段树
    数据结构-元组
    洛谷P3195 玩具装箱TOY
    数据结构-列表基本语法
    P2569 股票交易
    列表循环
    P3507 GRA-The Minima Game
    数据结构-集合
    洛谷P1595 信封问题
  • 原文地址:https://www.cnblogs.com/wanernet/p/1215976.html
Copyright © 2020-2023  润新知