VBA利用正则提取中文

Function 提取中文(str As String) As String
    Set regEx = CreateObject("vbscript.regexp")
    With regEx
        .Global = 1
        .Pattern = "[Function RemoveNarrow(str As String) As String"
    Set regEx = CreateObject("vbscript.regexp")
    With regEx
        .Global = 1
        
        .Pattern = "[^\u4e00-\u9fff]"
       提取中文 = .Replace(str, "")
    End With
    End With
End Function


Sub test()
    X = Application.CountA(Worksheets("SHEET3").Range("A:A"))
    For I = 2 To X
      Worksheets("SHEET3").Cells(I, 7) = 提取中文(Worksheets("SHEET3").Cells(I, 3))
      Next   
      
    
End Sub



### VBA 中使用正则表达式的编程指导 在 VBA (Visual Basic for Applications) 编程环境中引入正则表达式功能可以极大地增强字符串处理能力。为了实现这一点,通常会利用 `VBScript.RegExp` 对象[^2]。 创建并配置正则对象如下所示: ```vba Dim regEx As Object Set regEx = CreateObject("VBScript.RegExp") With regEx .Global = True ' 设置全局匹配模式 .IgnoreCase = True ' 忽略大小写 .Pattern = "your_pattern_here" ' 定义要使用的正则表达式模式 End With ``` 上述代码片段展示了如何实例化一个正则表达式对象以及设置其基本属性。其中 `.Global` 属性决定了是否执行整个输入串中的所有匹配;`.IgnoreCase` 控制着是否区分字母大小写的敏感度;而最核心的部分则是通过 `.Pattern` 来指定具体的正则表达式规则。 对于实际应用而言,假设有一个需求是要找出给定文本里所有的电子邮件地址,则相应的正则表达式可能是这样的形式 `\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}\b` 。下面是一个完整的例子说明怎样用此方法提取邮件列表: ```vba Sub ExtractEmails() Dim inputText As String Dim matches As Object Set regEx = CreateObject("VBScript.RegExp") With regEx .Global = True .IgnoreCase = True .Pattern = "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}\b" If .Test(inputText) Then Set matches = .Execute(inputText) For Each match In matches Debug.Print match.Value Next match Else MsgBox ("No emails found.") End If End With End Sub ``` 这段程序首先定义了一个用于存储待分析文本变量 `inputText` 和用来保存找到的结果集合 `matches` ,接着按照前面介绍的方式初始化了正则引擎参数,并调用了测试函数确认是否存在符合条件的数据项。如果确实存在的话就遍历每一个发现的对象打印出来;反之给出提示信息告知用户未检测到任何邮箱地址。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_44390640

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值