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

您所在的位置:网站首页 自定义正则表达式函数 Excel自定义函数使用正则表达式详解

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

2024-07-13 00:34| 来源: 网络整理| 查看: 265

               

http://www.111cn.net/office/excel/52912.htm

函数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 SelectEnd 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://club.excelhome.net/thread-591254-1-1.html

https://support.office.microsoft.com/zh-cn/article/%e4%bd%bf%e7%94%a8%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f%e6%9d%a5%e6%9f%a5%e6%89%be%e5%92%8c%e6%9b%bf%e6%8d%a2%e6%96%87%e6%9c%ac%ef%bc%88%e9%ab%98%e7%ba%a7%ef%bc%89-eeaa03b0-e9f3-4921-b1e8-85b0ad1c427f?CorrelationId=d1a13437-cc1f-4f9e-a2ab-c4a94e6e9528&ui=zh-CN&rs=zh-CN&ad=CN

 

用于查找

类型

示例

任一字符

?

s?t 可找到“sat”和“set”。

任何字符串

*

s*d 可找到“sad”和“started”。

单词开头

可找到“in”和“within”,但找不到“interesting”。

指定字符之一

[ ]

w[io]n 可找到“win”和“won”。

此范围内的任一字符

[-]

[r-t]ight 可找到“right”和“sight”。范围必须是升序。

除了括号内范围中的字符之外的任一字符

[!x-z]

t[!a-m]ck 可找到“tock”和“tuck”,但找不到“tack”或“tick”。

前一个字符或表达式的 n 个匹配项

{n}

fe{2}d 可找到“feed”,但找不到“fed”。

前一个字符或表达式的至少 n 个匹配项

{n,}

fe{1,}d 可找到“fed”和“feed”。

前一个字符或表达式的 n 到 m 个匹配项

{n,m}

10{1,3} 可找到“10”、“100”和“1000”。

前一个字符或表达式的一个或多个匹配项

@

lo@t 可找到“lot”和“loot”。

 

           


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3