Excel自定义函数使用正则表达式详解 |
您所在的位置:网站首页 › 自定义正则表达式函数 › Excel自定义函数使用正则表达式详解 |
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 |