Excel/VBA 正则表达式归纳汇总

1.with结构。以下语句用来提取A列中的"成品"两个字前面的部分的中文,不含成品两个字,结果存放在第2列。使用了On Error Resume Next,表示错误时继续下一条。

Sub 提取口味()

Set regx = CreateObject("vbscript.regexp")

On Error Resume Next

With regx

.Global = True

.Pattern = "[\u4e00-\u9fa5]+(?=成品)"

For Each rg In Range([a1], Columns(1).End(xlDown))

Set k = .Execute(rg)

Cells(rg.Row, 2) = k(Row)

Next

End With

End Sub

二.提取汉字或数字,分别存放在指定单元格

Sub RegExpDemoSyntax()

Dim 正则, 结果集合, 结果

字符串 = Range("A2").Value

Set 正则 = CreateObject("vbscript.regexp")

正则.Pattern = "Name:(.*?),Phone:(\d+)"

'Global值为True返回所有符合要求的结果,反之只返回第一个符合要求的结果

正则.Global = True

'Execute(字符串)

Set 结果集合 = 正则.Execute(字符串)

If 结果集合.Count > 0 Then

i = 2

For Each 结果 In 结果集合

Range("B" & i) = 结果.submatches(0)

Range("C" & i) = 结果.submatches(1)

Range("D" & i) = 正则.Replace(字符串, "12")

i = i + 1

Next

End If

Set 正则 = Nothing

End Sub

返回结果

相关推荐
Channing Lewis23 分钟前
sharepoint 共享excel,如何实现某个 sheet 别人只读,但是另一个 sheet 可以编辑
excel·sharepoint
wei_work@1 小时前
【linux】简单的shell脚本练习
linux·运维·服务器
conkl3 小时前
Apache网页优化实战指南 - 让网站加载速度提升
linux·运维·服务器·开发语言·阿里云·apache
huangyuchi.3 小时前
【Linux】初见,进程概念
linux·服务器·操作系统·进程·进程管理·pcb·fork
搬码临时工4 小时前
域名访问内网网站知多少?通过自定义域名访问本地Web 服务
服务器·网络·tcp/ip
五阿哥爱跳舞4 小时前
【环境配置】解决linux每次打开终端都需要source .bashrc文件的问题
linux·运维·服务器
网易独家音乐人Mike Zhou4 小时前
【Linux应用】Linux系统日志上报服务,以及thttpd的配置、发送函数
linux·运维·服务器·mcu·物联网·嵌入式·iot
陶然同学6 小时前
从零开始:VMware上的Linux与Java开发环境配置
linux·运维·服务器·vmware·虚拟机
盛满暮色 风止何安6 小时前
BGP基础
运维·服务器·网络·网络协议·tcp/ip·网络安全·智能路由器
阿拉丁的梦6 小时前
ue5的blender4.1groom毛发插件v012安装和使用方法(排除了冲突错误)
linux·运维·服务器