【excel自定义函数使用正则表达式】Excel自定义函数使用正则表达式详解

更新时间:2018-09-17    来源:excel    手机版     字体:

【www.bbyears.com--excel】

函数ExStr功能,根据正规表达式,替换或判断或提取字符串
"参数 str 源字符串
"参数 Parttern 正则表达式字符串
"参数 ActionID  函数功能 1正则方法一,替换符合正规表达式的字符
                         ?正则方法二 判断是否有符合正规表达式
                         ?正则方法三,提取符合正规表达式的字符
"参数 Repstr 指定替换的字符,可选项,默认为空

 代码如下


Function ExStr(Str As String, Parttern As String, ActionID As Integer, Optional RepStr As String = "")
    Dim regex As Object
    Set regex = CreateObject("vbscript.regexp")
    With regex
        .Global = True
        .IgnoreCase = True
        .MultiLine = True
        .Pattern = Parttern
    End With
    Select Case ActionID
        Case 1:
            ExStr = regex.Replace(Str, RepStr)
        Case 2:
            ExStr = regex.test(Str)
        Case 3:
            Dim matches As Object
            Set matches = regex.Execute(Str)
            For Each Match In matches
                ExStr = ExStr & Match.Value
            Next
    End Select
End Function

附常用几个正规表达式

"^d+$"  //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$"  //正整数 "^((-d+)|(0+))$"  //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$"  //负整数 "^-?d+$"    //整数 "^d+(.d+)?$"  //非负浮点数(正浮点数 + 0) "^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数 "^((-d+(.d+)?)|(0+(.0+)?))$"  //非正浮点数(负浮点数 + 0) "^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数 "^(-?d+)(.d+)?$"  //浮点数 "^[A-Za-z]+$"  //由26个英文字母组成的字符串 "^[A-Z]+$"  //由26个英文字母的大写组成的字符串 "[^a-z+$]"    "由26个英文字母的小写组成的字符串 " [^A-Za-z0-9]+$"  ‘由数字和26个英文字母组成的字符串 "^w+$"  //由数字、26个英文字母或者下划线组成的字符串 "^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$"    //email地址 "^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$"  //url /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/   // 年-月-日 /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/   // 月/日/年 "^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"   //Emil "(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?"   //电话号码 "^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"   //IP地址 匹配中文字符的正则表达式: [^u4e00-u9fa5] 匹配双字节字符(包括汉字在内):[^x00-xff] 匹配空行的正则表达式:n[s| ]*r 匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/ 匹配首尾空格的正则表达式:(^s*)|(s*$) 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 匹配网址URL的正则表达式:^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 匹配国内电话号码:(d{3}-|d{4}-)?(d{8}|d{7})? 匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$

本文来源:http://www.bbyears.com/bangongshuma/44416.html

热门标签

更多>>

本类排行