Excel自定义函数使用正则表达式详解
http://www.111cn.net/office/excel/52912.htm
函数ExStr功能,根据正规表达式,替换或判断或提取字符串
'参数 str 源字符串
'参数 Parttern 正则表达式字符串
'参数 ActionID 函数功能 1正则方法一,替换符合正规表达式的字符
?正则方法二 判断是否有符合正规表达式
?正则方法三,提取符合正规表达式的字符
'参数 Repstr 指定替换的字符,可选项,默认为空
| 代码如下 | 复制代码 |
|
| |
附常用几个正规表达式
| "^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标记的正则表达式:/<(.*)>.*1>|<(.*) />/ |
| 匹配首尾空格的正则表达式:(^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”。 |
| 单词开头 | < | <(inter) 可找到“interesting”和“intercept”,但找不到“splintered”。 |
| 单词结尾 | > | (in)> 可找到“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”。 |
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
