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

返回结果

相关推荐
tedcloud1236 小时前
Wand-Enhancer 怎么搭建?开源 Wand 客户端增强与远程控制工具介绍
大数据·服务器·人工智能·开源·音视频
医疗信息化王工7 小时前
DataForge:基于 Python 的数据库批量导出 Excel 工具——从架构到部署的全流程实战
数据库·python·excel
Emily156853598707 小时前
ABB CI867K01 3BSE043660R1
服务器·plc·dcs·abb·ci867k01·3bse043660r1·工控模块
Java陈序员8 小时前
轻量运维面板!一款现代化的服务器控制面板工具!
运维·服务器·python·react.js·github
bosins8 小时前
WSL 迁移指南:如何将 Linux 环境完整复制到另一台电脑
linux·运维·服务器
snow@li10 小时前
服务器运维:Linux命令速查手册(全景梳理)
linux·服务器·网络
handler0110 小时前
【Linux】线程与虚拟内存的底层世界
linux·运维·服务器·c++·线程·虚拟地址空间·共享内存
布莱克60510 小时前
TCP 三次握手与四次挥手详解
服务器·网络·tcp/ip·计算机网络·网络编程
新时代牛马11 小时前
实时 Linux:PREEMPT_RT、延迟来源与观测
linux·运维·服务器
微露清风11 小时前
# Linux 进程全景:从 PCB 到 O(1) 调度队列
linux·服务器