-
excel正则表达式筛选
快捷键 Alt +F11 打开代码视图
image.png
代码:
Function GetStr(rng As Range, str As String)
'第一个参数rng为区域保持不变, 添加第二个参数str(作为正则表达式)
With CreateObject("VBscript.regexp")
.Global = True
.Pattern = str '表达式,直接从用户函数的第二个参数中调用
If .Execute(rng).Count = 0 Then
GetStr = ""
Else
GetStr = .Execute(rng)(0)
End If
End With
End Function
函数 GetStr 就编写完成了,使用方法截图如下:
考虑到未来还会用到,不把正则固定死,正则直接在函数框上写就行
本例是从源数据中提取字符串
image.png
测试将商品链接简化,提取商品id:
image.png
Excel常用的正则
"^/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)|(3[0|1]))$/ // 年-月-日 |
/^((0([1-9]{1}))|(1[1|2]))/((0-2)|(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]$ |
作者:Oct1a
链接:https://www.jianshu.com/p/4157815c0054
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。